错误状态:没有从 `when()` 中调用方法存根
Bad state: No method stub was called from within `when()`
我正在尝试在我的 signInAnonyymous() 函数中测试我的捕获量。然而,我不断收到标题中所述的错误。
这是我的模拟验证 class(为简洁起见进行了编辑):
class MockFirebaseAuth extends Mock implements FirebaseAuth {
final bool signedIn;
final bool isEmployee;
MockFirebaseAuth({this.isEmployee = false, this.signedIn = false});
@override
Future<UserCredential> signInAnonymously() async {
return MockUserCredential(isAnonymous: true);
}
}
而且,这是我的测试:
group('Sign-In-Anonymously', () {
setUp(() {
mockFunctions = MockFirebaseFunctions();
mockAuth = MockFirebaseAuth();
mockCrashltyics = MockCrashlytics();
mockFirestore = MockFirebaseFirestore();
authRemoteService = AuthServiceFirebase(
crashlytics: mockCrashltyics,
firestoreService: mockFirestore,
functions: mockFunctions,
service: mockAuth,
);
authProvider = AuthProvider(authRemoteService);
});
test(
'Should return a null AuthUser and non-null errorMessage on exception thrown',
() async {
when(mockAuth.signInAnonymously())
.thenThrow(MockFirebaseAuthException('message', 'code'));
//act
await authProvider.signInAnonymously();
//assert
expect(authProvider.authUser, isNull);
expect(authProvider.errorMessage, isNotNull);
});
});
我已经研究并尝试了很多不同的方法,但仍然无法测试我的捕获量。任何帮助,将不胜感激。提前谢谢你。
如果您要使用 'when',则不能覆盖 mock 中的方法。您需要提供来自“thenAnswer”的答案。
我正在尝试在我的 signInAnonyymous() 函数中测试我的捕获量。然而,我不断收到标题中所述的错误。
这是我的模拟验证 class(为简洁起见进行了编辑):
class MockFirebaseAuth extends Mock implements FirebaseAuth {
final bool signedIn;
final bool isEmployee;
MockFirebaseAuth({this.isEmployee = false, this.signedIn = false});
@override
Future<UserCredential> signInAnonymously() async {
return MockUserCredential(isAnonymous: true);
}
}
而且,这是我的测试:
group('Sign-In-Anonymously', () {
setUp(() {
mockFunctions = MockFirebaseFunctions();
mockAuth = MockFirebaseAuth();
mockCrashltyics = MockCrashlytics();
mockFirestore = MockFirebaseFirestore();
authRemoteService = AuthServiceFirebase(
crashlytics: mockCrashltyics,
firestoreService: mockFirestore,
functions: mockFunctions,
service: mockAuth,
);
authProvider = AuthProvider(authRemoteService);
});
test(
'Should return a null AuthUser and non-null errorMessage on exception thrown',
() async {
when(mockAuth.signInAnonymously())
.thenThrow(MockFirebaseAuthException('message', 'code'));
//act
await authProvider.signInAnonymously();
//assert
expect(authProvider.authUser, isNull);
expect(authProvider.errorMessage, isNotNull);
});
});
我已经研究并尝试了很多不同的方法,但仍然无法测试我的捕获量。任何帮助,将不胜感激。提前谢谢你。
如果您要使用 'when',则不能覆盖 mock 中的方法。您需要提供来自“thenAnswer”的答案。