从PHPUnit测试调用时,方法中无法识别的命名路由

时间:2019-03-15 02:01:21

标签: laravel-5 phpunit

从另一个包含命名路由的类中调用方法时,无法识别该路由

此PHPUnit测试旨在检查由于系统复杂而导致系统功能仍满足要求。

从本地环境(宅基地流浪者)运行测试

我在这里调用方法表格:

$orderLines = (new EDIProcessController())->getChanges($order['ediOrder'], $order['partnerId']);

引起问题的命名路由:

$orderLine->item_url = route('warehouse.products.view', $itemDetails->id);

我收到以下错误:

InvalidArgumentException: Route [warehouse.products.view] not defined.

/home/vagrant/vr/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php:305
/home/vagrant/vr/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:790
/home/vagrant/vr/app/Http/Controllers/Warehouse/EDI/SPS/EDIProcessController.php:1575
/home/vagrant/vr/vendor/laravel/framework/src/Illuminate/Support/Collection.php:861
/home/vagrant/vr/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php:139
/home/vagrant/vr/app/Http/Controllers/Warehouse/EDI/SPS/EDIProcessController.php:1746

路由文件中定义的路由:

Route::get('/view/{id}', 'Warehouse\ProductController@viewProduct')->name('warehouse.products.view');

在Laravel应用中调用此路由时,效果很好,但在PHPUnit测试中不起作用

1 个答案:

答案 0 :(得分:0)

最后找到答案

为子路由文件使用require_once时出现问题,这是由于路由文件的多个实例未全部获取所需文件引起的。

Here is a dicussion here that I eventually found

在路由文件的所有级别上将require_once切换为require即可解决问题