You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.8项目PHPUnit测试返回404错误,寻求修复方案

解决Laravel 5.8 PHPUnit测试404响应问题

咱们先揪出核心问题:你的测试请求路径和实际注册的路由不匹配,这才导致了404错误。

1. 定位路径不匹配的问题

你定义的路由是:

Route::apiResource('Vehicle.source', 'API\VehicleController');

这个嵌套的apiResource生成的路由结构里,你实际能正常访问的API路径是/api/Vehicle/22222/source/DB,但你的测试代码里请求的却是:

$this->json('GET', '/api/Vehicle/22222/DB');

这里明显缺少了source这一段路径,PHPUnit找不到对应的路由,自然返回404。

2. 修复测试请求路径

把测试里的请求路径改成和实际访问一致的即可:

$response = $this->json('GET', '/api/Vehicle/22222/source/DB');

3. 额外:解决实际访问的500错误

路径改对后虽然不会再出现404,但你实际访问时返回500,说明VehicleController里的对应方法(比如处理该请求的自定义方法或show方法)存在逻辑问题,比如:

  • 数据库中不存在ID为22222的Vehicle记录
  • 处理DB参数时触发了异常
  • 缺少必要的依赖或配置

你可以查看Laravel的日志文件(storage/logs/laravel.log),里面会有500错误的具体堆栈信息,修复这个问题后,才能通过assertStatus(200)的断言。

4. 验证路由结构(可选)

如果对路由的实际结构存疑,你可以运行以下命令查看所有注册的路由:

php artisan route:list

在输出里找到和Vehicle.source相关的条目,确认请求方法、路径是否和你的测试匹配。


内容的提问来源于stack exchange,提问作者Lakshika Wijayasinghe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:35:25