Mockito: невозможно добавить данные в поток;когда я вызываю функцию приемника потока, она бросает вызов функции на нуль - PullRequest
0 голосов
/ 24 октября 2019

Невозможно добавить данные в поток при тестировании с использованием mockito. Когда я вызываю функцию приемника потока, тогда он бросает вызов функции на нуль. Auth.changeShowProgress (true) возвращает вызов функции при нулевом значении. Как добавить данные в поток в блоке?

testWidgets('Correct email and password gives success',
  (WidgetTester widgetTester) async {
final AuthBloc auth = MockAuthBloc();

when(auth.showProgress).thenReturn(null);

when(auth.changeShowProgress(true)).thenAnswer((_) {
  Future.value(null);
});

await widgetTester.pumpWidget(
  makeTestableWidget(
    authbloc: auth,
    child: MaterialApp(home: LoginPage()),
  ),
);

await widgetTester.pump(Duration.zero);

verify(auth.showProgress).called(1);

expect(find.byType(CircularProgressIndicator), findsOneWidget);

await widgetTester.enterText(
    find.bySemanticsLabel("Email address"), "admin@admin.com");

await widgetTester.enterText(find.bySemanticsLabel("Password"), "password");

await widgetTester.tap(find.widgetWithText(PRaisedButton, "Login"));

await widgetTester.pump();
});

1 Ответ

0 голосов
/ 24 октября 2019

У вас может быть более одной проблемы здесь. Этот код:

when(auth.changeShowProgress(true)).thenAnswer((_) {
  Future.value(null);
});

должен выглядеть следующим образом:

when(auth.changeShowProgress(true)).thenAnswer((_) {
  return Future.value(null);
});

или примерно так:

when(auth.changeShowProgress(true)).thenAnswer((_) => Future.value(null));

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...