Метод вспомогательного тестирования с зависимостью от контроллера - PullRequest
0 голосов
/ 01 мая 2018

Как часть моего 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, который использует помощник для отображения флэш-сообщений, но это кажется странным.

Это признак плохого дизайна? Что-то другое? Стоит ли искать способы заглушить контроллер для модульного тестирования этой функции?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...