我可以使用capybara / rspec来匹配范围吗?

时间:2012-07-07 17:17:18

标签: ruby ruby-on-rails-3 rspec capybara

我正在测试Rails 3.2.6应用程序。

是否可以制作表达的Rspec / Capybara断言,例如:

'如果我要求在1970年到1990年之间拍摄电影,那么该页面应该包含这些日期之间的电影:'

例如

it "should show films in the the chosen date range" do
  page.should have_selector '.year',  # then something like text: range(1970..1990)
end

相反,我可以检查没有'.year'元素包含不在该范围内的日期吗?

感谢您的帮助。

3 个答案:

答案 0 :(得分:9)

将块传递给have_selector不起作用,但是within做了:

within('.year') do 
  text.to_i.should be_between(1970, 1990)
end

答案 1 :(得分:1)

尝试类似:

page.should have_selector('.year') do |year|
  range(1970..1990).should include(year.text.to_i)
end

答案 2 :(得分:1)

在我看来,target.should be_between(x, y) rspec语法更具可读性:

page.should have_selector('.year') do |year|
  i_year = year.text.to_i
  i_year.should be_between(1970, 1990)
end