2016-11-16 3 views
1

Я пытаюсь проверить свой код с помощью Codeception, и мои тесты (как функциональные, так и приемные) не работают, когда я тестирую вариант выхода из системы. Они терпят неудачу с «Метод не разрешен (405)», потому что они отправляются методом GET. У меня этот код из окна в виджете Nav:Метод Yii2 не разрешен при тестировании с помощью Codeception

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

Этот код прекрасно работает, когда я нажимаю ссылку вручную. В этом случае они отправляются методом POST. Но это не работает во время тестирования. Почему это происходит?

ответ

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>'; 
+0

Спасибо! Оно работает! Поэтому в этом случае мы должны включить эту ссылку в тег формы. –

+0

есть точно .. !! –

Смежные вопросы