使用Laravel中的PHPUnit进行google authenticator条形码扫描的单元测试存根
请帮我找出解决办法使用Laravel中的PHPUnit进行google authenticator条形码扫描的单元测试存根,laravel,unit-testing,phpunit,google-authenticator,Laravel,Unit Testing,Phpunit,Google Authenticator,请帮我找出解决办法 有人知道如何使用PHPUnit编写单元测试存根来扫描条形码吗? 供参考: 在我们的应用程序中,使用了双因素身份验证(google authenticator)。当用户在显示条形码的下一个屏幕中输入有效的用户名和密码时,我们使用移动设备上的google authenticator应用程序扫描该条形码,然后生成6位代码,我们在web应用程序中输入该代码,然后重定向到主页 如何在为登录编写单元测试存根时设置cookie 为您的2FA创建一个抽象 使Google Authentica
$cookie = ['cookiename' => \Crypt::encryptString(json_encode(array('cookieValue' => 1)))];
$this->call('post', 'login', [
'username' => user1,
'password' => 'test',
'_token' => csrf_token(),
'remember' => 'on',
], $cookie)
在laravel应用程序中,登录使用双因素身份验证。使用Google authenticator时,我们无法编写用于扫描条形码和生成6位代码的单元测试用例。如果有人知道如何使用PHPUnit为googleauthenticator编写单元测试,这将非常有帮助。这就是我建议您为2FA创建一个可以存根或伪造的抽象的原因,因此它是可测试的。在自动测试中使用实际的Google验证器不是您想要做的事情。我甚至不知道这是否可行,但无论如何我不会搞砸它。与你的应用程序相关的唯一一件事就是用户提供了一个有效的代码。这段代码是来自Google Authenticator、硬件令牌还是sms代码并不重要。因此:用抽象来伪装它。这是您可以控制的解决方案。我没有理解您关于如何为google authenticator实现单元测试存根的观点。我的观点是:您不必这样做。如果您想验证您的应用程序是否正在根据第二个因素进行验证,那么您应该完全这样做。不管它是谷歌认证器还是其他任何东西。