Мы разрабатываем наши проекты на Laravel 4. Один из наших интеграционных тестов выполняет два последовательных HTTP-запроса к одному и тому же контроллеру:
public function testFetchingPaginatedEntities() {
$response = $this->call('GET', "foos?page=1&page_size=1");
// assertions
$response = $this->call('GET', "foos");
// some more assertions
}
Как видите, второй запрос не содержит параметров строки запроса. Тем не менее, мы заметили, что наш контроллер получал page
а также page_size
в обоих запросах.
Мы смогли это исправить, перезапустив тестовый клиент между вызовами (как описано в Тесты контроллера Laravel 4 — ErrorException после слишком большого количества $ this->call () — почему?):
public function testFetchingPaginatedEntities() {
$response = $this->call('GET', "foos?page=1&page_size=1");
// assertions
$this->client->restart();
$response = $this->call('GET', "foos");
// some more assertions
}
Сейчас мы рассматриваем перенос нашего проекта на Laravel 5, но похоже, что $this->client
больше не доступен в тестах, так как L5 больше не использует Illuminate\Foundation\Testing\Client
,
Кто-нибудь может предоставить альтернативу для сброса тестового клиента? Или, может быть, способ избежать его перезапуска?
$this->refreshApplication();
между звонками решил проблему для меня на Laravel 5.4.
Других решений пока нет …