Flutter 如何为使用firestore documentsnapshot的模型编写测试

Flutter 如何为使用firestore documentsnapshot的模型编写测试,flutter,unit-testing,dart,google-cloud-firestore,flutter-test,Flutter,Unit Testing,Dart,Google Cloud Firestore,Flutter Test,目前我正在关注TDD,但现在我陷入了一个困境,我想测试一个UserModel类,它基于documentsnapshot发出一个UserEntity。这是我要测试的代码 factory UserModel.fromSnapsot(DocumentSnapshot snapshot) { return UserModel( email: snapshot.get('email').data(), username: snapshot.get('username')

目前我正在关注TDD,但现在我陷入了一个困境,我想测试一个UserModel类,它基于documentsnapshot发出一个UserEntity。这是我要测试的代码

  factory UserModel.fromSnapsot(DocumentSnapshot snapshot) {
    return UserModel(
      email: snapshot.get('email').data(),
      username: snapshot.get('username').data(),
      uid: snapshot.get('uid').data(),
    );
  }
我写了一个测试,但是失败了

对null调用了方法“get”。接收者:空。尝试呼叫:获取(“电子邮件”)

我写的代码是


  group('fromSnapshot', () {
    when(UserModel.fromSnapsot(mockDocumentSnapshot))
        .thenAnswer((_) => tUserModel);

    final result = UserModel.fromSnapsot(mockDocumentSnapshot);

    expect(result, tUserModel);
  });

知道如何测试上述代码吗?

我找到了一个名为fake_cloud_firestore的插件。这样,我就可以通过假数据测试了

mockDocumentSnapshot
为空,它必须是有效的快照,而不是空。有没有办法用数据制作自定义快照I dunno,请查看
DocumentSnapshot
官方文档