如何为使用 Firestore 文档快照的模型编写测试

Posted

技术标签:

【中文标题】如何为使用 Firestore 文档快照的模型编写测试【英文标题】:How to write the test for a Model that uses firestore documentsnapshot 【发布时间】:2021-08-17 04:43:33 【问题描述】:

目前我正在关注 TDD,但现在我想测试一个基于文档快照发出 UserEntity 的 UserModel 类。这是我要测试的代码。

  factory UserModel.fromSnapsot(DocumentSnapshot snapshot) 
    return UserModel(
      email: snapshot.get('email').data(),
      username: snapshot.get('username').data(),
      uid: snapshot.get('uid').data(),
    );
  

我写了一个测试,但它说失败了

在 null 上调用了“get”方法。接收方:空。尝试调用:get("email")

我写的代码是


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

    final result = UserModel.fromSnapsot(mockDocumentSnapshot);

    expect(result, tUserModel);
  );

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

【问题讨论】:

mockDocumentSnapshot 为空,它必须是有效的快照,而不是空 有没有办法用数据制作自定义快照 我不知道,查看DocumentSnapshot官方文档 【参考方案1】:

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

【讨论】:

以上是关于如何为使用 Firestore 文档快照的模型编写测试的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Firestore 文档设置到期日期 [重复]

如何为 Firestore 创建大量示例数据?

在 Web javascript 中获取云 Firestore 集合的快照大小 [重复]

如何从 Vuex 商店中删除 Firestore 快照侦听器

新的 Firebase Firestore DocumentDb 如何为大型子集合建模

Firestore 单文档快照流未更新