У меня есть before_filter
на моем классе ApplicationController
, и я хочу написать для него тест? Где я должен написать этот тест? Я не хочу входить в каждый тестовый файл контроллера подкласса и повторять тест об этом фильтре.Как проверить контроллер приложения перед методами фильтрации в Rails 3?
Следовательно, что является рекомендуемым способом тестирования ApplicationController
before_filters?
Обратите внимание, что я использую Rails 3.2.1
с minitest
.
Если фильтр на определенный контроллер, я согласен с вашим подходом. Мой фильтр объявлен в классе 'ApplicationController' (и унаследован от всех контроллеров, полученных из него). Метод фильтра, который я использую, связан с проверками запроса. Мне нужно написать тест в том месте, где я могу использовать такие методы, как те (или эквивалент?), Которые я использую при тестировании конкретного контроллера. Возможно, ваш ответ на мою проблему в вашей последней фразе («Если фильтр ... среди тестов»), но я не вижу этого. Кроме того, как я могу проверить, что метод, прикрепленный к 'before_filter', действительно привязан к нему? –
Вы можете написать набор тестов, который входит в каждый тест контроллера и запускается для каждого действия. Это должно быть просто (r) сделать с помощью RSpec, используя 'it_behaves_like' (https: // www.relishapp.com/rspec/rspec-core/v/2-0/docs/example-groups/shared-example-group), но на простой Test :: Unit вы можете делать такие вещи. Возможно, вы можете вдохнуть вдохновение из ActiveModel :: Lint: Tests (http://api.rubyonrails.org/classes/ActiveModel/Lint/Tests.html - https://github.com/rails/rails/blob/master/activemodel /lib/active_model/lint.rb) –