Flutter 集成测试 firebase auth电子邮件链接或谷歌登录

问题描述

我正在向我的应用程序添加集成测试(使用 integration_test 包),但我遇到了问题。

让我解释一下。我的应用启动时的第一步是身份验证,我有 3 个选项可供选择:firebase 电子邮件链接、firebase google 登录和 firebase facebook 登录

阻碍我的是所有这些登录方法都需要主应用程序 dart 代码之外的操作,因此 Flutter 驱动程序无法访问。

在这里遗漏了什么吗?如果不是,那应该如何处理?

干杯!

解决方法

您可以添加第四种登录方式 - 使用用户名和密码。 Firebase 应该支持这种非常常见的情况,因此您可以在代码行内完成。

如果您不希望最终用户通过密码登录,您可以简单地在生产版本中禁用此方法并仅在调试版本中启用它。

另一种方法是模拟您的身份验证系统。换句话说,在进行测试时,您有一个名为“假登录”的按钮,您的集成测试驱动程序只需单击该按钮即可。

,

为了使测试不那么不稳定,我建议不要依赖互联网连接或第三方(如 Firebase 或 Google 登录)。

我建议为此使用 Mock。因此,当您尝试登录测试时,您会发送一个虚假的响应,这样您就可以继续使用该应用。

以下文章解释了如何使用模拟: https://medium.com/stuart-engineering/mocking-integration-tests-with-flutter-af3b6ba846c7