4

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」要素にその範囲外の日付が含まれていないことを確認できますか?

助けてくれてありがとう。

4

3 に答える 3

9

ブロックを have_selector に渡すことは機能しませんでしたが、機能しましwithinた:

within('.year') do 
  text.to_i.should be_between(1970, 1990)
end
于 2012-07-08T09:05:11.027 に答える
1

次のようなものを試してください:

page.should have_selector('.year') do |year|
  range(1970..1990).should include(year.text.to_i)
end
于 2012-07-07T21:30:29.010 に答える
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
于 2012-07-07T21:55:49.650 に答える