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 に答える