Testing mockito不工作时颤振中的Widgett导航

Testing mockito不工作时颤振中的Widgett导航,testing,flutter,dart,mockito,Testing,Flutter,Dart,Mockito,超级新的颤振测试。我不明白为什么我会在上出现以下错误 verify(mockNavigationObserver.didPush(any,any)) ════════════════════════════════════════════════════════════════════════════════════════════════╡ 颤振测试框架捕获异常╞════════════════════════════════════════════════════ 运行测试时引发了以下Tes

超级新的颤振测试。我不明白为什么我会在上出现以下错误

verify(mockNavigationObserver.didPush(any,any))

════════════════════════════════════════════════════════════════════════════════════════════════╡ 颤振测试框架捕获异常╞════════════════════════════════════════════════════
运行测试时引发了以下TestFailure对象:
没有匹配的呼叫(实际上,根本没有呼叫)。
(如果您调用了`verify(…)。调用了(0);`,请改用`verifyNever(…);`。)
引发异常时,这是堆栈:
#0失败(包:test_api/src/frontend/expect.dart:153:30)
#1 _VerifyCall._checkWith(包:mockito/src/mock.dart:648:7)
#2(u)进行验证。(包装:mockito/src/mock.dart:935:18)
#3主要。。(文件:/test/navigation\u test.dart:53:13)
#4个测试小部件。。(包装:颤振测试/src/widget测试仪。dart:124:25)
#5 TestWidgetsFlutterBinding.\u runTestBody(包:flutter\u test/src/binding.dart:696:19)
#8 TestWidgetsFlutterBinding.\u runTest(包:flutter\u test/src/binding.dart:679:14)
#9 AutomatedTestWidgetsFlutterBinding.runTest。(包装:颤振试验/src/binding.dart:1050:24)
#15 AutomatedTestWidgetsFlutterBinding.runTest(包:颤振测试/src/binding.dart:1047:15)
#16个测试小部件。(包装:颤振测试/src/widget测试仪。dart:121:22)
#17庄家。测试。。。(软件包:test_api/src/backend/declarer.dart:171:27)
#18 Invoker.waitforOutstanding回调。(包:test_api/src/backend/invoker.dart:242:15)
#23 Invoker.waitForOutstandingCallbacks(包:test_api/src/backend/Invoker.dart:239:5)
#24庄家测试。。(软件包:test_api/src/backend/declarer.dart:169:33)
#29庄家测试。(包:test_api/src/backend/declarer.dart:168:13)
#30调用程序。_onRun。。。。(包:testapi/src/backend/invoker.dart:392:25)
#44计时器。运行计时器(dart:isolate patch/Timer\u impl.dart:384:19)
#45 _Timer._handleMessage(dart:隔离补丁/计时器_impl.dart:418:5)
#46 RawReceivePortImpl.handleMessage(dart:隔离补丁/隔离补丁。dart:174:12)
(从类_FakeAsync、包dart:async、包dart:async patch和包堆栈_trace中删除了28帧)
试验说明如下:
起始页。。登录按钮->登录屏幕
我的导航\u test.dart如下:

导入“包装:颤振/材料.省道”;
进口“包装:颤振试验/颤振试验.dart”;
导入“package:mockito/mockito.dart”;
导入“package:project/auth/provider/auth_provider.dart”;
导入“package:project/auth/screens/start_screen.dart”;
导入“package:project/common/config/finders.dart”;
导入“package:project/common/config/key_strings.dart”;
导入“package:project/common/config/route_config.dart”;
导入“包:provider/provider.dart”;
//模拟课
类MockNavigatorObserver扩展Mock实现NavigatorObserver{}
类MockAuthProvider扩展Mock实现AuthProvider{}
void main(){
组(‘起始页导航测试’,(){
导航观察者模拟导航观察者;
AuthProvider mockAuthProvider;
设置((){
mockNavigationObserver=MockNavigatorObserver();
mockAuthProvider=mockAuthProvider();
});
小部件createWidgetForTesting({Widget子部件}){
返回材料PP(
家:孩子,
路线:RouteConfig.routes,
);
}
Future\u buildStartScreen(WidgetTester测试仪)异步{
等待测试仪.pumpWidget(
ChangeNotifierProvider.value(
值:mockAuthProvider,
子项:createWidgetForTesting(子项:StartScreen()),
));
验证(mockNavigationObserver.didPush(any,any));
}
未来(导航到PageByButtonkey)(
WidgetTester测试仪,字符串按钮键)异步{
Finder buttonFinder=find.byKey(Key(buttonKey));
expect(buttonFinder、findsOneWidget);
等待测试仪。轻触(按钮输入);
等待测试仪。泵和沉降器();
}
testWidgets('StartPage..RegisterButton->CreateProfile屏幕',
(WidgetTester测试仪)异步{
wait_buildWidget(tester,StartScreen());
等待(测试仪,启动屏幕)(注册)按钮(按键);;
验证(mockNavigationObserver.didPush(any,any));
expect(find.byKey(Key(CREATE_PROFILE_SCREEN_Key)),findsOneWidget);
});
});
}

我没有注册我的mockNavigation观察员。我做事的时候需要少看电视

Widget createWidgetForTesting({Widget child}){
返回材料PP(
家:孩子,
路线:RouteConfig.routes,
NavigatorObserver:[mockNavigationObserver],
);
}
════════════════════════════════════════════════════════════════════════════════════════════════╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following TestFailure object was thrown running a test:
  No matching calls (actually, no calls at all).
(If you called `verify(...).called(0);`, please instead use `verifyNever(...);`.)

When the exception was thrown, this was the stack:
#0      fail (package:test_api/src/frontend/expect.dart:153:30)
#1      _VerifyCall._checkWith (package:mockito/src/mock.dart:648:7)
#2      _makeVerify.<anonymous closure> (package:mockito/src/mock.dart:935:18)
#3      main.<anonymous closure>.<anonymous closure> (file:<my_project_path>/test/navigation_test.dart:53:13)
<asynchronous suspension>
#4      testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:124:25)
#5      TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:696:19)
<asynchronous suspension>
#8      TestWidgetsFlutterBinding._runTest (package:flutter_test/src/binding.dart:679:14)
#9      AutomatedTestWidgetsFlutterBinding.runTest.<anonymous closure> (package:flutter_test/src/binding.dart:1050:24)
#15     AutomatedTestWidgetsFlutterBinding.runTest (package:flutter_test/src/binding.dart:1047:15)
#16     testWidgets.<anonymous closure> (package:flutter_test/src/widget_tester.dart:121:22)
#17     Declarer.test.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart:171:27)
<asynchronous suspension>
#18     Invoker.waitForOutstandingCallbacks.<anonymous closure> (package:test_api/src/backend/invoker.dart:242:15)
#23     Invoker.waitForOutstandingCallbacks (package:test_api/src/backend/invoker.dart:239:5)
#24     Declarer.test.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart:169:33)
#29     Declarer.test.<anonymous closure> (package:test_api/src/backend/declarer.dart:168:13)
#30     Invoker._onRun.<anonymous closure>.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/invoker.dart:392:25)
#44     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:384:19)
#45     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:418:5)
#46     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12)
(elided 28 frames from class _FakeAsync, package dart:async, package dart:async-patch, and package stack_trace)

The test description was:
  StartPage .. LogInButton -> LogIn Screen