用Capybara和rails进行CSS测试

时间:2014-01-24 22:43:15

标签: css ruby rspec capybara

我正在尝试通过计算我找到的类的实例来了解如何测试特定视图上的页面元素的数量。我正在运行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规范时,我在同一文件中的其他测试正在按预期工作,所以这不是问题。

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

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

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

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