如何在转到下一步-Cucumber之前验证上一步是否成功

时间:2012-12-03 07:20:07

标签: ruby-on-rails ruby-on-rails-3 cucumber

我在运行黄瓜步骤后得到非常随机的行为。我需要添加一个条件,这样我只有在前面的步骤成功时才会移动到黄瓜的下一步。此外,我可以在我的{设置容差级别{1}}所以50个文件中,即使10个文件失败,仍然是成功的...... 现在我正在使用

env.rb

...在每个方案之间进行验证......不是每一步。

1 个答案:

答案 0 :(得分:0)

确保步骤已通过的最佳方法是使用rspec匹配来通过或不通过测试。如果您希望该功能失败,如果页面上没有内容“foo bar”,您可以这样做:

Then /^I should see "([^\"]*)"$/ do |text|
  page.should have_content(text), "Expected to see #{text} on the page"
end

如果您正在设置容差级别,则可以使用变量来跟踪成功或失败的次数。让我们说你运行一个功能,检查“foo”,你正在检查50次。在您的一个步骤中创建变量以跟踪成功的数量,如果页面缺少内容,您可以使用capybara告诉您页面是否具有您要查找的内容而不会使该功能失败:

Given /^Some step$/ do
  @a = 0
  if page.has_content?("foo") == true
     a += 1
  end
end

然后在最后一个场景中,检查a是否大于最小阈值

Then /^Last step$/ do
  @a.should be > 40, "Expected at least 40 success but saw #{a} successes instead"
end