我试图找出如何通过计算我找到的类的实例来测试特定 View 上的页面元素的数量。我正在运行 Rails 4.0.0、Ruby 2.0.0 和 Capybara 2.0.1。
这是我的测试:
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 spec 时,我在同一个文件中的其他测试按预期工作,所以这不是问题。
最佳答案
你可以试试这个:
page.all("ul.successful").length.should == 10
page.all
返回一个结果数组,您可以使用 .length
后缀对其进行计数。如果 Rspec 没有找到恰好 10 个结果,它应该给你一个错误和一个有用的解释。例如:
RSpec::Expectations::ExpectationNotMetError: expected: 10
got: 9 (using ==)
关于使用 Capybara 和 rails 进行 CSS 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21343826/