Я пытаюсь протестировать метод презентатора с помощью сопоставителя RS-кода Capybara.Как использовать Capybara Rspec Соединители для тестирования ведущего?
Допустим, у меня есть метод, который дает кнопку. Это будет тест, который я хотел бы написать, если бы я не использовал водосвинка Rspec matchers:
it "should generate a button" do
template.should_receive(:button_to).with("Vote").
and_return("THE_HTML")
subject.render_controls.should be == "THE_HTML"
end
Использование водосвинка Rspec matchers, я хочу сделать это:
it "should render a vote button" do
subject.render_controls.should have_button('Vote')
end
Этот подход был предложен в этой статье http://devblog.avdi.org/2011/09/06/making-a-mockery-of-tdd/. В статье автор объясняет это следующим образом: «Я решил немного изменить настройку спецификации, чтобы передать объект шаблона, который включал в себя фактические помощники тегов Rails. Затем я включил spec-элементы Capybara для составления утверждений о HTML «.
Однако я не понимаю этого. Как вы можете использовать capybara rspec matchers, когда render_controls возвращает content_tag?