2014-01-24 48 views
0

我想了解如何通过计算我找到的类的实例来测试特定视图上的页面元素的数量。我运行rails 4.0.0,Ruby 2.0.0和Capybara 2.0.1。用水豚和铁轨的CSS测试

这里是我的测试:

it "has 10 successful charges" do 
    visit '/' 
    expect(page).to have_css("ul.successful", :count => 10) 
end 

这是输出:

Failure/Error: expect(page).to have_css("ul.successful", :count => 10) 
    expected #has_css?("ul.successful", {:count=>10}) to return true, got false 

当我运行rspec的规范,我在同一个文件其他测试按照预期正常运作,所以这不是问题。

+0

您是否尝试过使用save_and_open_page来直观地检查代码并查看是否存在10 x ul.successful? –

回答

0

你可以试试这个:

page.all("ul.successful").length.should == 10 

page.all返回结果,你可以使用.length后缀计数的数组。如果找不到10个结果,Rspec会给你一个错误和有用的解释。例如:

RSpec::Expectations::ExpectationNotMetError: expected: 10 
got: 9 (using ==)