【问题标题】:Mocking firebase user.reload() in flutter test在颤振测试中模拟 firebase user.reload()
【发布时间】:2021-09-25 09:49:19
【问题描述】:

我正在尝试使用模拟用户模拟 Firestore 调用。 使用https://pub.dev/packages/fake_cloud_firestorehttps://pub.dev/packages/firebase_auth_mocks

但我得到了错误:

NoSuchMethodError:类“MockUser”没有具有匹配参数的实例方法“reload”。 接收方:“MockUser”实例 尝试调用:reload() 找到:reload() => 未来

我的方法:

Future<String> getHistory(
  FirebaseAuth firebaseAuth, FirebaseFirestore firestore) async {
String title = "";
var user = firebaseAuth.currentUser;
user.reload();

if (user != null) {
  await firestore
      .collection('users')
      .doc(user.uid)
      .collection('history')
      .get()
      .then((QuerySnapshot querySnapshot) {
    if (querySnapshot.docs.isNotEmpty) {
      title = querySnapshot.docs.single.get('title');
    }
  }).catchError((error) => print(error));
}
return title;

}

和测试:

test("history", () async {
final mockFirestore = FakeFirebaseFirestore();
HistoryFirebase historyFirebase;
String historyTitle="";

final user = MockUser(
  isAnonymous: false,
  uid: 'someuid',
  email: 'bob@somedomain.com',
  displayName: 'Bob',
);
var mockFirebaseAuth = MockFirebaseAuth(mockUser: user, signedIn: true);

await instance.collection('users').doc('someuid').collection('history').add({
  'title': "Title num.1",
})

await historyFirebase.getHistory(mockFirebaseAuth, mockFirestore).then((value) => historyTitle=value);
expect(historyTitle, "Title num.1");

});

有什么方法可以模拟 user.reload() 或忽略它吗?

【问题讨论】:

    标签: flutter google-cloud-firestore firebase-authentication mocking


    【解决方案1】:

    我联系了https://pub.dev/packages/firebase_auth_mocks的开发者,他实现了reload()方法。

    现在一切正常

    【讨论】:

      猜你喜欢
      • 2021-05-21
      • 2021-07-22
      • 2022-08-11
      • 2019-06-13
      • 2019-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-08
      相关资源
      最近更新 更多