Как я могу заглушить или смоделировать метод request.subdomains в Rails? - PullRequest
3 голосов
/ 17 июня 2009

Я пытаюсь написать несколько функциональных тестов в моем приложении rails, и в application_controller.rb у меня есть это:

before_filter :current_account
def current_account
  @current_account ||= Account.find_by_subdomain!(request.subdomians.first)
end

При запуске тестов request.subdomains не содержит действительных поддоменов, которые я ищу, и делает невозможным выполнение каких-либо функциональных тестов.

Можно ли заглушить метод current_account или смоделировать объект request.subdomains?

Ответы [ 3 ]

5 голосов
/ 17 июня 2009

В вашем функциональном тесте вы должны уметь (используя мокко):

@request.expects(:subdomains).returns(['www'])
1 голос
/ 19 октября 2010
@controller.instance_variable_set(:@request, OpenStruct.new({:subdomains => 'www'}))

Вы можете получить доступ ко всему в ruby:)

1 голос
/ 25 января 2010

Для меня (и с Rails 2.3.4) правильное утверждение:

@controller.request.expects(:subdomains).returns(['www'])

, поскольку я не могу получить доступ к @request напрямую.

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