【问题标题】:Bad state: No method stub was called from within `when()`错误状态:没有从`when()`中调用方法存根
【发布时间】:2021-04-12 18:42:53
【问题描述】:

我正在尝试在我的 signInAnonyymous() 函数中测试我的捕获。然而,我不断收到标题中所述的错误。

这是我的 Mocked Auth 类(为简洁而编辑):

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);
});
});

我已经研究并尝试了很多不同的方法,但仍然无法测试我的捕获量。任何帮助,将不胜感激。提前谢谢你。

【问题讨论】:

    标签: flutter mockito


    【解决方案1】:

    如果你要使用'when',你不能覆盖模拟中的方法。您需要从“thenAnswer”中提供答案。

    【讨论】:

    • 现在错误信息是有道理的。那么,我将如何在 Flutter 中使用 Firestore sdk 测试我的异常捕获?
    • 我不知道你在问什么?我假设 .thenThrow 可以让您测试包装 FireStore 查询的任何 try\catch 子句。
    • 我想通了。泰。
    猜你喜欢
    • 2019-08-20
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    相关资源
    最近更新 更多