是否可以提取laravel 4 app的路线并重复它们?
我正在考虑使用它来测试每次迭代中的每条路线。
这是一个假设:
$routes = Request::routes();
foreach($routes as $route)
{
$crawler = $this->client->request($route->http_verb, $route->name);
$this->assertTrue($this->client->getResponse()->isOk());
}
答案 0 :(得分:4)
使用Laravel中的数组不需要测试路由。
“路由”代码已由Laravel核心进行单元测试。我们知道它有效。如果路由已正确配置和定义,并且在路由数组中,那么它将起作用。
通过从Laravel获取一系列路由,然后针对Laravel测试这些路由,您只需复制已存在的单元测试。
您应该明确测试您知道和需要的路线。即/login
或/dashboard
。然后,如果您更改了代码,并删除了/dashboard
路由,则会收到错误,因为该路由不再存在。
但是如果你从Laravel本身拉出路线 - 你将永远不会收到错误 - 因为/dashboard
路线不再在你正在测试的阵列中!!!!
答案 1 :(得分:1)
查看在控制台中管理routes
artisan命令的类。
它位于Illuminate\Foundation\Console\RoutesCommand
您可以在Laravel API页面中轻松找到此类。
它也适用于此课程use Symfony\Component\Routing\RouteCollection;
编辑我认为App::make('router')->getRoutes()
它返回一个巨大的数组,尝试解析一下;)