如何在laravel测试用例中获取路由列表?
如标题所示,建议如何在测试用例中获取路由列表。我知道这可以通过使用如何在laravel测试用例中获取路由列表?,laravel,testing,phpunit,Laravel,Testing,Phpunit,如标题所示,建议如何在测试用例中获取路由列表。我知道这可以通过使用Route::getRoutes()在控制器中完成。但是,这在测试用例中不起作用。谁能给我一个主意吗 更新: 我如何在测试用例中做到这一点 $routeCollection = Route::getRoutes(); $routeArray = []; $i = 0 foreach($routeCollection as $value) { $routeArray[$i++] = $value->getPath();
Route::getRoutes()
在控制器中完成。但是,这在测试用例中不起作用。谁能给我一个主意吗
更新:
我如何在测试用例中做到这一点
$routeCollection = Route::getRoutes();
$routeArray = [];
$i = 0
foreach($routeCollection as $value) {
$routeArray[$i++] = $value->getPath();
}
更新2:
比如这个测试用例。我想得到测试用例中的路由列表。但这是行不通的
<?php
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Laracasts\Integrated\Extensions\Selenium as IntegrationTest;
class RouteTest extends IntegrationTest
{
/**
* A basic test example.
*
* @return void
*/
public function testExample()
{
$routeCollection = Route::getRoutes();
foreach($routeCollection as $value) {
$this->visit($value->getPath())
->onPage($value->getPath());
}
}
}
中有一条注释说:
注意:在测试环境中禁用路由筛选器。要启用它们,请将Route::enableFilters()添加到测试中。
PD:这是针对4.2的。$This->call('GET','user/profile')此方法调用特定的路由,在本例中为'user/profile'。我想要的是得到项目中所有路线的列表。所以。。。就像php artisan route:list一样,就像下面的代码一样$routeCollection=Route::getRoutes();foreach($routeCollection as$value){echo$value->getPath()。
';}使用“Route::enableFilters()”并没有解决任何问题?@vivek-您可以与上面的代码共享更多代码吗?