【问题标题】:Cannot see response get request laravel phpunit看不到响应获取请求 laravel phpunit
【发布时间】:2023-03-31 16:56:02
【问题描述】:

请原谅这可能是重复的,但我不确定如何实现以下目标。我正在使用 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 失败。

但我现在想看看究竟是哪条路线失败了,所以我可以调查失败路线的原因。我如何从响应或请求中接收此信息?

【问题讨论】:

    标签: php laravel routes phpunit


    【解决方案1】:

    在断言之前,ddlog 如下:

    $response->exception->getStackTrace();
    

    您也可以访问给定类的任何其他异常消息。

    【讨论】:

    • 使用此代码,我收到以下错误消息:错误:在 null 上调用成员函数 getStackTrace()
    • 是的,因为 Laravel 正在将 404 转换为异常处理程序中的响应。在 ExceptionHandler.php 中添加一行以在此函数的顶部打印异常public function report(Exception $exception): void
    猜你喜欢
    • 1970-01-01
    • 2013-03-17
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 2017-11-08
    • 1970-01-01
    相关资源
    最近更新 更多