Laravel 4 - 提取路线,迭代和测试

时间:2013-07-05 16:44:29

标签: laravel laravel-4

是否可以提取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());    
}

2 个答案:

答案 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()它返回一个巨大的数组,尝试解析一下;)