使用 Capybara 和 rails 进行 CSS 测试

标签 css ruby rspec capybara

我试图找出如何通过计算我找到的类的实例来测试特定 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/

相关文章:

javascript - 根据浏览器高度调整背景图片大小

javascript - .height() 函数在设置为自动时显示错误值

ruby + AMQP : processing queue in parallel

c# - 闭包和 lambda 之间的区别?

javascript - html页面自动刷新

ruby-on-rails - 性传播感染的帮助。需要帮助重构我现有的代码

rspec - Rspec测试使用模拟和期望从范围限定的模型方法中进行有序检索

ruby-on-rails - Cucumber Stories 的 session 变量

ruby-on-rails - rails capybara - 如何检测 js 点击 li(不是链接或按钮)

html - 在通过js加载的图像上覆盖div的背景图像