Пожалуйста, не говорите мне "искать больше" или что-то еще, потому что все решения по подобному вопросу не удаются.
Simple:
У меня есть функциональные тесты. Я хочу просто получить и посмотреть, отображается ли правильный контент
test "displays headline if user should see it" do
get :index
assert_match /headline/, response.body
end
test "doesn't display headline if user shouldn't see it" do
get :index
assert_no_match /headline/, response.body
end
и простой вид
<% if show_headline?(arg) %>
headline
<% end %>
и помощник:
module TheHelper
def show_headline?(arg)
arg ? hard_code_logic : even_harder_logic
end
end
так что мне нужно сделать в тесте что-то вроде:
test "displays headline if user should see it" do
Something.stubs(:show_headline?).returns(true)
get :index
assert_match /headline/, response.body
end
test "doesn't display headline if user shouldn't see it" do
Something.stubs(:show_headline?).returns(false)
get :index
assert_no_match /headline/, response.body
end
Вопрос в том, что такое Нечто? Я хочу заглушить его, потому что у меня есть помощники, проверенные в подразделении / помощниках.
После того, как вспомогательный модуль get будет добавлен в класс контроллера. Пожалуйста, не давайте мне ссылки на другие ответы, я их читаю (но, конечно, я мог бы прочитать не те), и они не работают для меня. Я использую Rails 2.3.10 с mocha 0.9.8.
Вещи, которые не работают:
TheController.any_instance.stubs(:show_headline?)
ActionView::Base.any_instance...
@controller.stubs...
UPDATE:
единственное, что сработало, было:
<% self.stubs(:show_headline?).returns(true) >%
<% if show_headline?(arg) %>
headline
<% end %>
но, конечно, я не буду использовать это ... может быть, это ключ