看不到响应获取请求 laravel phpunit
Posted
技术标签:
【中文标题】看不到响应获取请求 laravel phpunit【英文标题】:Cannot see response get request laravel phpunit 【发布时间】:2018-07-08 10:20:22 【问题描述】:请原谅这可能是重复的,但我不确定如何实现以下目标。我正在使用 phpunit 对 laravel 中的路由进行一些测试,但我无法收到有关路由失败原因的任何调试信息。
这是我要测试的代码,它只是调用了一些命名路由:
foreach($companyNames as $companyName)
$response = $this->call('GET', Config::get('app.url') . '/provider/' . $companyName);
$response->assertStatus(200);
当 assertStatus 失败时我得到的响应是:
1) 测试\Unit\ProviderPageRouteTest::testProviderPageRoutes
预期的状态代码为 200,但收到的是 404。
断言 false 为 true 失败。
但我现在想看看究竟是哪条路线失败了,所以我可以调查失败路线的原因。我如何从响应或请求中接收此信息?
【问题讨论】:
【参考方案1】:在断言之前,dd
或 log
如下:
$response->exception->getStackTrace();
您也可以访问给定类的任何其他异常消息。
【讨论】:
使用此代码,我收到以下错误消息:错误:在 null 上调用成员函数 getStackTrace() 是的,因为 Laravel 正在将 404 转换为异常处理程序中的响应。在 ExceptionHandler.php 中添加一行以在此函数的顶部打印异常public function report(Exception $exception): void
以上是关于看不到响应获取请求 laravel phpunit的主要内容,如果未能解决你的问题,请参考以下文章
带有 JSON 请求的 Laravel/phpunit 测试丢失了重要的请求细节
Laravel 5.2 PHPUnit JSON Api 请求正文未设置
处理来自 PHPUnit (Laravel 5.2) 的自定义异常