我正在尝试使用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
);
}
});