在 Laravel 中使用 PHPUnit 进行 google 身份验证器条形码扫描的单元测试存根

Unit test stub for google authenticator barcode scanning using PHPUnit in Laravel

请帮我找出解决办法。

  1. 有谁知道如何使用 PHPUnit 编写用于扫描条形码的单元测试存根? 供参考 : 在我们的应用程序中,使用了双因素身份验证(google 身份验证器)。当用户在下一个显示条形码的屏幕上输入有效的用户名和密码时,我们使用移动设备上的 google-authenticator 应用程序扫描该条形码,然后生成 6 位代码,我们在 Web 应用程序中输入该代码,然后重定向到主页。
  2. 如何在编写用于登录的单元测试存根时设置 cookie?
  1. 为您的 2FA 创建抽象
  2. 使 Google 身份验证器成为默认实现
  3. 创建一个适合您需要的假实现。这可以是始终有效的固定六位代码,或者您可以将其设置为可配置
  4. 在你的测试中用假的替换默认实现
  5. 测试您在登录过程中需要测试的场景
  6. 创建手动测试以确保您的 Google 身份验证器实施确实有效

我知道这个回答比较抽象,但你的问题也不是很具体。如果您能提供更多详细信息,我很乐意深入探讨。

对于第 2 点: 在 laravel.

中进行单元测试时,我可以使用请求设置 cookie(json 编码数组)
$cookie = ['cookiename' => \Crypt::encryptString(json_encode(array('cookieValue' => 1)))];

  $this->call('post', 'login', [
        'username' => user1,
        'password' => 'test',
        '_token' => csrf_token(),
        'remember'  => 'on',
    ], $cookie)