Задать вопрос
@Nolan81
программист

Почему не могу проверять заголовки в тестах yii2?

Привет.
Тестирую (функционально) простую страницу, которая гостю недоступна, т.е. идет редирект на страницу логина.
public function guestListUsersTest(FunctionalTester $I)
    {
        $I->amOnRoute('user/crud/index');
       
        // не работает
        $I->seeResponseCodeIs(302);
        // тоже не работает
        //$I->seeResponseCodeIsRedirection();
    }

Видно, что amOnPage выходит, делает редирект, и уже отдает страницу логина, т.е. так работает
$I->amOnRoute('user/crud/index');
        // работает
        $I->seeCurrentUrlEquals('/site/login');


Так как тогда проверять методами вроде seeResponseCodeIs ?

Вот мой конфиг для функциональных, тот что по умолчанию

actor: FunctionalTester
modules:
    enabled:
      - Filesystem
      - Yii2
      - Asserts
  • Вопрос задан
  • 33 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • HTML Academy
    Бэкенд-разработчик для Addamant
    6 месяцев
    Далее
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
nefone
@nefone
Junior PHP разработчик
У вас сначала происходит редирект а потом $I->seeResponseCodeIs(302); проверяет заголовки, надо явно запретить переходить по редиректу:

public function guestListUsersTest(FunctionalTester $I)
{
    // Запрещаем редирект
    $I->getModule('Yii2')->_reconfigure(['followRedirect' => false]);

    $I->amOnRoute('user/crud/index');

    // Проверяем код ответа
    $I->seeResponseCodeIs(302);
    // Также можно проверить наличие заголовка Location
    $I->seeHttpHeader('Location', '/site/login'); 
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы