【发布时间】:2021-09-17 05:43:57
【问题描述】:
我在某个小部件上方创建了一些提供者(例如提供者 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应该是要走的路 - 你介意发布你尝试过的代码吗? -
@MichaelHorn 我意识到我的错误。
matcher参数应该具有 Provider 的类型,并且不检查它是否包含 Provider 的名称。我将在下面发布解决方案
标签: flutter dart flutter-test widget-test-flutter