如何跳过黄瓜步骤?

NMK*_*MKP 6 cucumber

我有这样的场景:

  1. 鉴于我转到此页面
  2. 当我输入黄瓜
  3. 然后我点击
  4. 然后我应该看到文字
  5. 我不应该看到这条线

如果我运行这个场景,它将执行所有5个步骤.但是我想跳过第4步(然后我应该看到文本)并执行第5步.

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

Ern*_*est 13

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

一步可以得到以下结果:

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

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

我不确定我喜欢这个.听起来比它需要的更复杂.您已经拥有了某些不妥之处的必要信息 - 您的步骤将失败或未决.我没有看到继续执行以下步骤的价值.您仍然必须实施失败/暂挂步骤.

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

Aslak

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


mvn*_*aai 5

我必须根据环境有条件地跳过步骤.我曾经next跳过步骤.这是一个如何做你想做的事情的例子.

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

    ...
       <The actual step definition>
    ...
end
Run Code Online (Sandbox Code Playgroud)