Laravel测试和纯文本异常消息

时间:2014-04-02 14:52:14

标签: exception testing laravel codeception

我正在尝试使用Laravel的Codeception获取可读的错误消息。我发现如何覆盖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
        );
    } 
});

1 个答案:

答案 0 :(得分:1)

您可以使用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
        );
    } 
});