Я столкнулся с проблемой тестирования Laravel 4: тест действия/маршрута можно запустить только один раз, и это должен быть первый тестовый запуск. Любое последующее действие/проверка маршрута завершится ошибкой с исключением до вызова утверждения.
- тесты маршрута/действия выполняются до тех пор, пока они являются первым тестовым запуском.
- Тесты без маршрута/действия выполняются нормально, хотя они приводят к тому, что последующие тесты маршрута/действия выдают исключение.
Важно отметить, что рассматриваемые тесты не терпят неудачу, они выдают исключение при запуске действия, например:
Symfony\Component\Routing\Exception\RouteNotFoundException: Unable to generate a URL for the named route "home" as such route does not exist.
Пример тестового класса:
class ExampleTest extends TestCase {
// passes
public function testOne()
{
$class = MyApp::ApiResponse();
$this->assertInstanceOf('\MyApp\Services\ApiResponse', $class);
}
// this fails unless moved the top of the file
public function testRoute()
{
$this->route('GET','home');
$this->assertTrue($this->client->getResponse()->isOk());
}
// passes
public function testTwo()
{
$class = MyApp::ProjectService();
$this->assertInstanceOf('\MyApp\Services\ProjectService', $class);
}
}
Это зависит от реализации, в новом проекте Laravel 4 такой проблемы нет. Что может быть причиной такого поведения? Как бы вы отследили проблему?