使用 Firebase 电子邮件链接登录进行 e2e 测试?

Posted

技术标签:

【中文标题】使用 Firebase 电子邮件链接登录进行 e2e 测试?【英文标题】:Using firebase email link login for e2e tests? 【发布时间】:2018-11-25 00:49:57 【问题描述】:

我今天在对 CI 进行自动化 e2e 测试时偶然发现了以下问题。我的应用使用 3 种 firebase 登录方法:电子邮件链接、firebase 和 google。

在e2e测试期间,我最初以为我会使用电子邮件链接登录,但这不可能,因为应用程序需要进入电子邮件客户端并点击此类链接,所以现在我被阻止了。

我正在研究文档以查看是否有任何关于此问题的 e2e 测试建议,但无法找到解决方案。

firebase 是否提供了一个通用的解决方案?还是这里使用电子邮件+密码验证的唯一方法?

【问题讨论】:

你的意思是e2e集成测试吗?而不是手动测试? @bojeil 自动灰盒 e2e 测试在 CI 上运行,而不是手动运行。因此,为此使用某些工具,所以我认为我无法超出应用程序的范围并单击电子邮件登录链接以进行身份​​验证:/ @Ilja,你读过这个吗?***.com/questions/20959748/… 【参考方案1】:

我认为这里的最佳做法是在测试中拆分流程。

测试 1 是,让我们看看是否由于您的排毒测试中发生的事情而发送了一封电子邮件。因此,您单击该按钮并对您的服务器进行 API 调用,以查看它是否已发送电子邮件。或者您将后端配置为将电子邮件发送到您可以查询电子邮件的位置,例如 Mailtrap 或类似的东西。

测试 2 是查看当有人打开该 URL 时您的应用是否可以处理。要对此进行测试,您需要在后端伪造这样的 URL 并使用 detox 打开它。为此,您可以使用device.relaunchApp、see the detox docs here。

【讨论】:

以上是关于使用 Firebase 电子邮件链接登录进行 e2e 测试?的主要内容,如果未能解决你的问题,请参考以下文章

Firebase UI 电子邮件链接登录意图额外为空

iOS Firebase 登录

在 Android 上使用 Firebase 3.0 进行电子邮件验证

该应用程序可以使用 Firebase 进行生物识别登录吗?

为啥我无法将电子邮件/密码链接到 Firebase Flutter 中 Google 登录提供商中存在的同一电子邮件?

Firebase 电子邮件验证行为