我尝试用Codeception测试我的代码,当我测试logout选项时,我的测试(功能和接受)都失败了。它们因“不允许方法(405)”而失败,因为它们是通过GET方法发送的。 我在Nav小部件中开箱即用这个代码:
$menuItems[] = ['label' => 'Logout (' . Yii::$app->user->identity['username'] . ')',
'url' => ['/site/logout'],
'linkOptions' => ['data-method' => 'post']
当我手动点击链接时,此代码正常工作。在这种情况下,它们通过POST方法发送。 但它在测试时不起作用。 为什么会这样?
答案 0 :(得分:1)
对于注销,您可以按如下方式添加表单,该表单将使用POST
$menuItems[] = '<li>'
. Html::beginForm(['/site/logout'], 'post')
. Html::submitButton(
'Logout ('.Yii::$app->user->identity['username'].')', ['class' => 'btn btn-link btnlogout']
)
. Html::endForm()
. '</li>';