Тестирование 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
        );
    } 
});

person Adamski    schedule 02.04.2014    source источник


Ответы (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
        );
    } 
});
person sjdaws    schedule 04.04.2014