请帮我找出解决方案。
- 有人知道如何使用PHPUnit扫描条形码来编写单元测试存根吗?FYI:在我们的应用程序中,使用了双因素身份验证(google authenticator(。当用户在下一个显示有条形码的屏幕上输入有效的用户名和密码时,我们使用手机上的谷歌验证器应用程序扫描条形码,然后生成6位代码,我们在web应用程序中输入,然后重定向到主页
- 如何在为登录编写单元测试存根时设置cookie
- 为2FA创建抽象
- 将Google Authenticator设为默认实现
- 创建一个符合您需求的伪实现。这可能是一个固定的六位数代码,始终有效,或者您将其配置为
- 在测试中用false交换默认实现
- 测试登录过程中需要测试的场景
- 创建一个手动测试,以确保您的Google Authenticator实现确实有效
我知道这个答案相当抽象,但你的问题也不是很具体。如果你能提供更多的细节,我很乐意深入了解。
对于点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)