使用Codeception进行测试时不允许使用Yii2方法

时间:2016-11-16 11:49:13

标签: yii2 codeception

我尝试用Codeception测试我的代码,当我测试logout选项时,我的测试(功能和接受)都失败了。它们因“不允许方法(405)”而失败,因为它们是通过GET方法发送的。 我在Nav小部件中开箱即用这个代码:

$menuItems[] = ['label' => 'Logout (' . Yii::$app->user->identity['username'] . ')',
                                'url' => ['/site/logout'],
                                'linkOptions' => ['data-method' => 'post']

当我手动点击链接时,此代码正常工作。在这种情况下,它们通过POST方法发送。 但它在测试时不起作用。 为什么会这样?

1 个答案:

答案 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>';