Laravel测试和纯文本异常消息



我正在尝试使用Codeception和Laravel获取可读的错误消息。我已经找到了如何覆盖 App::error 函数以给我基于文本或 json 的响应。但是,我想以某种方式设置错误,以便它仅在不从测试调用时显示 html 错误页面。

意识到我正在运行的功能测试使用 PhpBrowser 类,所以可能无法检查......

任何提示非常感谢。

代码如下:

App::error(function(Exception $exception, $code, $fromConsole)
{
    Log::error($exception);
    if($fromConsole) {
        return Response::make($exception->getMessage());
    }
    if ( Request::header('accept') === 'application/json' )
    {
        return Response::json([
            'error' => true,
            'message' => $exception->getMessage(),
            'code' => $code],
            $code
        );
    } 
});

您可以使用App::environment()来获取当前环境。

App::error(function(Exception $exception, $code, $fromConsole)
{
    Log::error($exception);
    if($fromConsole) {
        return Response::make($exception->getMessage());
    }
    if ( App::environment() == 'production' )
    {
        return Response::json([
            'error' => true,
            'message' => $exception->getMessage(),
            'code' => $code],
            $code
        );
    } 
});

最新更新