【发布时间】:2012-04-18 13:31:57
【问题描述】:
我正在尝试使用 Capybara RSpec 匹配器测试演示者方法。
假设我有一个呈现按钮的方法。如果我不使用 capybara rspec 匹配器,这将是我要编写的测试:
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
使用 capybara rspec 匹配器,我想这样做:
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 标记助手的模板对象。然后我包括了 Capybara 规范匹配器,用于对 HTML 进行断言。”
但是,我不明白这一点。当 render_controls 只返回一个 content_tag 时,如何使用 capybara rspec 匹配器?
【问题讨论】:
标签: ruby-on-rails rspec capybara presenter