Flutter集成测试Firebase身份验证(电子邮件链接或Google登录)

9

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

让我解释一下。当我的应用程序启动时,第一步是身份验证,我有3个选项:Firebase电子邮件链接、Firebase Google登录和Firebase Facebook登录。

阻止我的是所有这些登录方法都需要在主应用程序Dart代码之外执行操作,因此Flutter Driver无法访问它们。

我是否遗漏了什么?如果没有,该如何处理这种情况?

干杯!


好的,它不需要主应用程序之外的东西。你能分享你的代码和错误码吗? - Raj Dhakad
你真的需要身份验证吗?它能被绕过或模拟吗? - Robin Dijkhof
3个回答

2

1
您可以使用Patrol来在Flutter集成测试中与本地系统UI进行交互。例如:
import 'package:flutter_test/flutter_test.dart';
import 'package:patrol/patrol.dart';

void main() {
  patrolTest(
  'signs in', 
  nativeAutomation: true,
  (PatrolTester $) async {
    await $.native.enterText(
      Selector(textContains: 'Email'),
      text: 'tester@awesomeapp.pl'),
    );
    await $.native.enterText(
      Selector(textContains: 'Password'),
      text: 'ny4ncat'),
    );
    await $.native.tap(Selector(text: 'Continue'));

     // you should be signed in
  });
}

登录时,提交电子邮件和密码后,是否考虑使用OTP身份验证,Bartek先生? - undefined

0

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接