Как часть моего rails
приложения, я создал помощника под ApplicationHelper
, который проверяет сгенерированные devise
ошибки и добавляет их в хэш flash[:error]
.
def devise_flash
if controller.devise_controller? && resource && resource.errors.any?
# modify flash
end
end
Этот помощник вызывается в слое вида (например, application.html.erb
).
Тем не менее, я не могу по-настоящему юнит-тестирование этого метода, потому что он полагается на экземпляр контроллера, чтобы быть разработчиком контроллера. Я мог бы проверить это, проверив представление, используя assert_select, который использует помощник для отображения флэш-сообщений, но это кажется странным.
Это признак плохого дизайна? Что-то другое? Стоит ли искать способы заглушить контроллер для модульного тестирования этой функции?