2

是否可以提取 laravel 4 应用程序的路线并对其进行迭代?

我正在考虑使用它来测试每次迭代中的每条路线。

这是一个假设:

$routes = Request::routes();

foreach($routes as $route)
{
    $crawler = $this->client->request($route->http_verb, $route->name);

    $this->assertTrue($this->client->getResponse()->isOk());    
}
4

2 回答 2

4

不需要使用 Laravel 中的数组来测试路由。

Laravel 核心已经对“路由”代码进行了单元测试。我们知道它有效。如果路由正确配置和定义,并且在路由数组中,那么它将起作用。

通过从 Laravel 获取一系列路由,然后针对 Laravel 测试这些路由,您只是在复制已经存在的单元测试。

您应该明确测试您知道和需要的路线。即/login/dashboard。然后,如果您更改代码并删除/dashboard路由 - 您将收到错误消息,因为该路由不再存在。

但是,如果你从 Laravel 本身中提取路由 - 你将永远不会出错 - 因为/dashboard路由不再在你正在测试的数组中!!!!

于 2013-07-07T02:59:46.440 回答
1

看看routes在控制台中管理 artisan 命令的类。

它位于Illuminate\Foundation\Console\RoutesCommand

你可以在 Laravel API 页面中轻松找到这个类。

它也适用于这个类use Symfony\Component\Routing\RouteCollection;

编辑我认为App::make('router')->getRoutes()它返回一个巨大的数组,尝试解析一下;)

于 2013-07-05T17:21:47.200 回答