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 测试中不起作用
解决方案
终于找到了答案
require_once
由于路由文件的多个实例并非全部获得所需文件而导致使用子路由文件存在问题。
在我们的路由文件的所有级别切换require_once
到解决了这个问题require
推荐阅读
- timer - 在 VHDL 中生成第二个计数器
- python - Python pandas在堆积条形图上绘制标签
- c# - 反转数组的最后一个元素
- c# - MySqlDataReader 对象未从函数接收任何数据
- r - 自定义 S3 类的 R 方法
- homebrew - 如何在自制软件中安装 amap?
- python - Tornado - 在线程池中执行请求
- swift - API - 使用 2 个按钮“获取”然后“放置”数据(修改)?
- google-analytics - 使用 GA4 和 NextJS 获取冗余页面浏览事件
- powershell - Powershell 将动态哈希表添加到 pscustomobject