从另一个包含命名路由的类中调用方法时,无法识别该路由
此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测试中不起作用
答案 0 :(得分:0)
最后找到答案
为子路由文件使用require_once
时出现问题,这是由于路由文件的多个实例未全部获取所需文件引起的。
Here is a dicussion here that I eventually found
在路由文件的所有级别上将require_once
切换为require
即可解决问题