Unit testing 单元测试->;找不到正确的提供程序<;计数器>;上述更改通知提供程序<;计数器>;小装置

Unit testing 单元测试->;找不到正确的提供程序<;计数器>;上述更改通知提供程序<;计数器>;小装置,unit-testing,flutter,flutter-test,Unit Testing,Flutter,Flutter Test,我想在我的项目中为提供者(ChangeNotifierProvider)创建一个单元测试,我的单元测试、小部件测试和集成测试成功通过✔️, 因此,现在我尝试(尽力这个问题发生了,因为您正在使用要获取的提供程序的BuildContext来调用provider。of: 提供程序( 钥匙:我的钥匙, ... ) Provider.of(myKey.currentContext); 这是不可能的,只有所述提供者的后代才能调用provider.of 考虑将您的测试更改为: testWidget('Pro

我想在我的项目中为提供者(
ChangeNotifierProvider
)创建一个单元测试,我的单元测试、小部件测试和集成测试成功通过✔️, 因此,现在我尝试(尽力这个问题发生了,因为您正在使用要获取的提供程序的
BuildContext
来调用
provider。of

提供程序(
钥匙:我的钥匙,
...
)
Provider.of(myKey.currentContext);
这是不可能的,只有所述提供者的后代才能调用
provider.of

考虑将您的测试更改为:

testWidget('Provider.of',(tester)异步{
等待测试仪.pumpWidget(
提供者(
创建:()=>42,
子级:容器(),
),
);
最终上下文=tester.element(find.byType(Container));
expect(上下文的提供者)等于(42);
});

非常非常好!!!现在它工作得非常好…非常感谢我在我的模型类
计数器中使用了我自己的
MyApp
小部件,所以它看起来是这样的:
final BuildContext childContext=tester.element(find.byType(MyApp));
expect(Provider.of(childContext).value,0);