如何跳过黄瓜步骤?

时间:2012-12-21 10:10:57

标签: cucumber

我的情景如下:

  1. 鉴于我转到此页
  2. 当我输入黄瓜
  3. 然后点击
  4. 然后我应该看到文字
  5. 我不应该看到这条线
  6. 如果我运行这个场景,它将执行所有5个步骤。但是我想跳过第4步(然后我应该看到文本)并执行第5步。

    请给我你的建议。提前致谢。 :)

2 个答案:

答案 0 :(得分:12)

TL; DR - 不要这样做 - 你(可能)弄错了。你不能(轻松)做到这一点。正如Aslak所写(黄瓜主要创作者之一):

  

步骤可以产生以下结果:

     
      
  • undefined(没有匹配的stepdef)
  •   
  • pending(抛出PendingException的匹配stepdef)
  •   
  • 传递(匹配的stepdef,不抛出任何东西)
  •   
  • 失败(抛出异常而非PendingException的匹配stepdef)
  •   
  • 跳过(在抛出任何异常的步骤之后的步骤(未定义,未决或失败))
  •   
     

你所要求的是一种新的结果 - 被忽略了。它可能是   通过抛出IgnoredException来实现。这意味着   跳过必须更改为:(步骤之后的步骤   抛出任何异常(未定义,未决或失败) - 除非   异常是IgnoredException)

     

我不确定我喜欢这个。听起来比这更复杂   需要是。你已经掌握了必要的信息   是不对的 - 你的步骤要么失败要么待定。我没看到   继续执行以下步骤的价值。你仍然需要   实施失败/待决步骤。

     

只要你被提醒“这里有工作要做”我   不要认为这会让Cucumber复杂化,告诉你是什么样的   工作需要做......

     

Aslak

整个讨论在这里:http://comments.gmane.org/gmane.comp.programming.tools.cucumber/10146

答案 1 :(得分:5)

我必须根据环境有条件地跳过步骤。我使用next跳过了步骤。这是一个如何做你想做的事的例子。

Then /^I should see the text/$ do
    next if @environment == 'no text'

    ...
       <The actual step definition>
    ...
end
相关问题