如何在小部件测试中测试特定的 ProviderNotFoundException

How to test for a specific ProviderNotFoundException in widget test

我在某个小部件上方创建了一些提供程序(例如提供程序 A、B、C),并在提供程序从小部件树中删除的情况下测试 ProviderNotFoundException

现在我正在像这样测试 ProviderNotFoundException

expect(tester.takeException(), isA<ProviderNotFoundException>());

这是非常通用的,因为如果删除它们,这将适用于所有提供者 A、B 和 C。我想添加额外的约束来检查是否只找到提供者 B。

我尝试在 isA 上使用 having 方法,但无法正常工作。

expect(
              tester.takeException(),
              isA<ProviderNotFoundException>().having(
                (e) => e.valueType,
                'valueType',
                contains('A'),
              ));

使用 having 方法添加额外的约束并检查 feature 参数是否与 matcher 参数正确匹配。

 expect(
              tester.takeException(),
              isA<ProviderNotFoundException>().having(
                (e) => e.valueType,
                'valueType',
                A,
              ));