Вопрос о контроллере Rspec Ruby on Rails

В настоящее время я использую ruby ​​​​1.9.2 и rails 3, и я нахожусь в процессе тестирования rspec. По сути, у меня есть функция, которая вызывается дофильтром в контроллере приложения, так что она, очевидно, запускается каждый раз, когда действие контроллера выполняется где-либо на моем сайте. В целях тестирования я пишу тесты для другого контроллера, но мои действия не вызывают вызов функции перед фильтром. Есть ли способ специально вызывать функции из определенного контроллера в тестах rspec? Я не могу опубликовать код в Интернете, поэтому бесполезно спрашивать его :P.
Спасибо.


person trflach    schedule 24.08.2011    source источник
comment
Хорошо, что вы не можете опубликовать свой код. Просто создайте быстрый тестовый пример другого кода, который демонстрирует ту же проблему.   -  person Craig Stuntz    schedule 24.08.2011


Ответы (1)


Внутри блока it или before(:each) в спецификации контроллера:

controller.send( :your_method_name )

И ваша функция будет вызвана.

person Maurício Linhares    schedule 24.08.2011
comment
Итак, если я пишу тесты в report_controller_spec.rb и хочу вызвать функцию, которая существует в моем application_controller.rb, я бы поместил в тест application_controller.send(:method_name)? - person trflach; 24.08.2011
comment
controller.send(:method_name), ваш контроллер доступен в методе с именем controller. - person Maurício Linhares; 24.08.2011