Я создал тестовый пример для метода выхода:
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();
}
введите описание изображения здесь
есть идеи, почему он так себя ведет?