如何在验收测试中登录,而不需要导航到登录页面并输入凭据


How to log in in an acceptance test without actually navigating to the login page and entering your credentials?

在Yii2的功能测试中,有一个方法amLoggedInAs($user)

$I->amLoggedInAs(
    User::find()->where('id = 1')->one()
);

但是对于验收测试,没有这样的方法。我的大多数测试都要求用户登录,我认为登录的唯一方法是通过编程导航到登录页面并输入您的凭据,如果每次测试都重复,这将非常耗时。

如何在验收测试期间登录而不进入登录页面?实际上,我希望在AcceptanceTesterFunctionalTester中看到amLoggedInAs($user)

不行。

登录通常使用会话变量,您不能在验收测试中访问它们。
如果你不登录就可以访问受限制的页面,这将是你网站的一个主要安全漏洞,所以你不能登录是一件好事。

您需要的是在验收测试期间执行登录,然后执行您的函数。

这里是你的问题的最佳答案:https://www.yiiframework.com/forum/index.php/topic/69572-acceptance-test-reuse-login-code/