我正在按照这个课程 testdrivenlaravel 进行操作,它提到了一种禁用Laravel异常处理的方法,以防止Laravel处理发生的异常并将其抛出,这样我们就可以在测试输出中得到更详细的错误 .

所以我在我的testcase类中添加了这个方法,在render方法中我抛出了异常

protected function disableExceptionHandling() {

    $this->app->instance(Handler::class, new class extends Handler {
        public function __construct()
        {
        }
        public function report(\Exception $e)
        {
        }
        public function render($request, \Exception $e)
        {
            throw $e;
        }
    });
}

但是每当我在测试中调用它时,为了得到更详细的错误,我仍然会得到与Laravel Handler渲染相同的错误 .

当我像这样直接更改 Handler 类时:

public function render($request, Exception $exception)
{
    throw $exception;
    // return parent::render($request, $exception);
}

我得到了详细的错误,但我需要让 disableExceptionHandling 帮助器工作 .