await несколько сбоев фьючерсов с Future.wait () - PullRequest
0 голосов
/ 11 июля 2020

Я создал тестовый пример для метода выхода:

test('when user signs out current signin providers should sign out',
      () async {
    final _ = await authFacade.signOut();
    verify(mockGoogleSignin.signOut()).called(1);
    verify(mockFirebaseAuth.signOut()).called(1);
  });

, а вот реализация в AuthFacade

Future<void> signOut() => Future.wait(
        [_googleSignIn.signOut(), _firebaseAuth.signOut()],
      );

, когда я запускаю тест, он не работает:

NoSuchMethodError: The method 'then' was called on null.
Receiver: null
Tried calling: then<Null>(Closure: (void) => Null, onError: Closure: (Object, StackTrace) => Null)
dart:async                                                              Future.wait
package:flutter_ddd/infrastructure/auth/firbase_auth_facade.dart 87:36  FirebaseAuthFacade.signOut
test/infrastructure/auth/firebase_auth_facade_test.dart 194:32          main.<fn>
===== asynchronous gap ===========================
dart:async                                                              Future.wait
package:flutter_ddd/infrastructure/auth/firbase_auth_facade.dart 87:36  FirebaseAuthFacade.signOut
test/infrastructure/auth/firebase_auth_facade_test.dart 194:32          main.<fn>
✖ when user signs out current signin providers should sign out
Exited (1)

путем изменения реализации на это он передает:

Future<void> signOut() async {
    await _firebaseAuth.signOut();
    await _googleSignIn.signOut();
  }

введите описание изображения здесь

есть идеи, почему он так себя ведет?

...