黄瓜 - 我应该在“最后”之前看到“第一” - Rails 3.1

时间:2011-09-30 15:28:03

标签: testing cucumber ruby-on-rails-3.1 integration-testing

[注意:使用Rails 3.1。]

我正在尝试测试多个模型在我的页面上以正确的顺序显示,在我的情况下,通过desc日期显示最新的。

我知道我可以执行以下操作来检查页面上是否存在某些内容:

And I should see "Some content on my page."

但我想做一些事情:

And I should see "Most Recent" before "Really old"

我将如何编写执行此操作的步骤?我相信“而且我应该看到”只扫描整个页面以查找指定的参数,只是不确定如何处理正确的顺序。

提前致谢!

2 个答案:

答案 0 :(得分:6)

在page.body上使用String#index查找每个人的位置,然后断言第一个<第二,例如

And /^I should see "([^"]*)" before "([^"]*)"$/ do |phrase_1, phrase_2|
  first_position = page.body.index(phrase_1)
  second_position = page.body.index(phrase_2)
  first_position.should < second_position
end

答案 1 :(得分:0)

更平坦的版本,MiniTest断言:

And /^I should see "([^"]*)" before "([^"]*)"$/ do |phrase_1, phrase_2|
  assert page.body.index(phrase_1) < page.body.index(phrase_2)
end