|
|||||||
Как получить информацию о заголовке и посмотреть переменные сессии при тестировании в Laravel 5.5
Время создания: 30.07.2019 19:36
Текстовые метки: php, laravel, test, тестирование, тест, заголовок, сессия, переменные, значения, header, headers, session
Раздел: Компьютер - Программирование - Язык PHP - Laravel - Тестирование в Laravel
Запись: xintrea/mytetra_syncro/master/base/1564504575lk7k51nzq6/text.html на raw.github.com
|
|||||||
|
|||||||
Иногда при создании и отладке тестов нужно видеть, что отвечает сервер. Например, нужно понять что прописано в заголовке ответа или нужно посмотреть, что находится в переменных сессии. Часто это необходимо делать, если тестируется какая-либо форма, у которой стоят всяческие проверки, перенаправляющие на страницы с пробрасыванием массива ошибок через метод withErrors(), или с передачей предыдущего ввода через метод withInput(). Ниже дан код, который позволяет прямо в коде теста вывести на консоль состояние заголовков и сессии: $data['name']='Vasya'; $data['email']='vasya@mail.ru';
$response = $this->post('/sendEmail');
echo "\n".'Headers'."\n"; print_r($response->headers->all()); echo "\n".'Session'."\n"; print_r($response->getSession()); После того, как стало понятно, что не так в тесте, данный вывод нужно не забыть закомментировать. Метод $response->getSession() не всегда может присутствовать в объекте $response. Например, если при проверке ввода не было обнаружено никаких ошибок, которые бы передавались через сессию, то и данных сессии в ответе может не оказаться. И будет получена ошибка: BadMethodCallException: Method getSession does not exist. Это очень странно, ведь сессия существует всегда, в ней хотя бы хранится ключ CSRF, и почему так происходит, надо разбираться дальше. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|