Тестирование на вызов CakeError()

Я использую модульное тестирование в CakePHP 1.3. В моем приложении используется очень простой ErrorHandler, как как показано в книге. Одна из моих моделей вызывает $this->cakeError('myError'), если что-то не так.

Теперь мне нужен тестовый пример для моей модели, который проверяет, правильно ли вызван обработчик ошибок - предоставлены неправильные данные.

SimpleTest предлагает expectError(), но, похоже, это сделано для стандартных ошибок PHP. Обработка ошибок в CakePHP — это другое дело, эти ошибки не перехватываются функцией expectError(). Если в тесте вызывается cakeError(), отображается сообщение об ошибке, а не результаты теста.

Как я могу проверить ожидаемые ошибки cakeErrors?


person pixelistik    schedule 20.04.2011    source источник


Ответы (1)


Вероятно, вы могли бы использовать частичный макет и издеваться над методом cakeError. Затем вы можете использовать expectOnce для подтверждения вызова метода cakeError. См. документацию для примера и дополнительных объяснений.

person dhofstet    schedule 20.04.2011
comment
Спасибо, это похоже на путь. Хотя никогда раньше не сталкивался с мокапами. После того, как я создал класс Mock AppError, знаете ли вы, где мне нужно создать его экземпляр, чтобы Cake фактически использовал его вместо исходного? - person pixelistik; 21.04.2011
comment
Я бы не стал издеваться над классом AppError, потому что вы не можете легко заменить исходный экземпляр. Вместо этого я бы издевался над методом cakeError() вашей модели. - person dhofstet; 21.04.2011
comment
Конечно, отлично, это поможет. Не могли бы вы обновить свой ответ, добавив эту конкретную информацию? - person pixelistik; 22.04.2011
comment
Если вам нужен полный пример этого с кодом, перейдите сюда: blog.deversus.com/2014/12/. - person Erebus; 12.12.2014