繁体   English   中英

单元测试 firebase_auth 和 firestore

[英]Unit Testing firebase_auth and firestore

我正在尝试设置 flutter 脚本来测试与我的 firestore 数据库接口的类。

我目前的挣扎是:

  • 似乎为了使用firebase_auth,我必须有一个小部件树。 我是 flutter 和 firebase 的新手,我通过一次构建一个类,为它们编写测试然后转到下一个类来慢慢建立我的专业知识。 需要小部件树意味着我不能独立于 GUI 测试授权逻辑(例如,如果我在代码中调用 signOut 两次会发生什么,即使 GUI 逻辑只允许您按下按钮一次?)。
  • 嘲讽是不够的。 为了模拟,您需要知道测试具有代表性的预期行为。 我花了很多时间尝试解决期货、更改登录状态和不正确的数据格式等问题。 如果我编写了模拟,它们就不会与实际函数的实际行为相匹配。
  • 模拟对我没有帮助,因为我也在学习数据库的安全规则。 我肯定有适用于宽松安全规则的代码,但当前的安全规则有问题。

有没有办法在不模拟的情况下为 firebase_auth 或 firestore 编写单元/集成测试? 如果这是可能的,我什至很高兴使用我的数据库的本地模拟器/导出。

以下是我查看过的一些不是我要查找的文章:

好吧,我想我已经找到了我要找的东西。 firebase 团队在使用 Firebase Emulator Suite 单元测试安全规则中展示了如何测试安全规则的工作非常出色。

我所做的是在我的实际 flutter 项目目录中运行了 firebase init,这篇文章使用 Flutter 使用 Firestore 模拟器展示了如何直接在 flutter 中访问模拟器, 但是现在要初始化的命令是

FirebaseFirestore.instance.useFirestoreEmulator('localhost', 8080);

结合这些,我认为应该可以测试是否以正确的格式将正确的数据写入数据库,同时确保返回的数据与预期的匹配,无论您是否使用 Freezed、Json Serializable ,飞镖:转换等...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM