0

运行黄瓜步骤后,我的行为非常随机。我需要添加一个条件,这样只有在前面的步骤成功时,我才会进入黄瓜的下一步。此外,我可以在我的设置中设置一个容差水平,env.rb以便 Out of 50 个文件,即使 10 个文件失败,仍然是成功的......现在我正在使用

After('@javascript, @selenium') do
  page.has_content? ''
end

...在每个场景之间进行验证...不是每个步骤。

4

1 回答 1

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
于 2013-02-08T15:31:24.303 回答