我如何刻意说黄瓜跳过当前场景中的其余步骤(java)

时间:2017-11-20 04:46:18

标签: cucumber cucumber-java

假设我有像下面这样的场景:

Scenario outline:
Given some "<data1>"
And Given some "<data2>"
When some conditon
Then do something

Examples:
|data1 |data2 |
|11    |12    |
|21    |22    |
|31    |32    |

如果我找到了数据11和12然后做了些什么&#39;步骤执行,如果我找到了22,那么在下一次迭代中这是显而易见的,那么我就不会执行“做某事”&#39;并且下一次迭代作为第一次迭代工作。我知道我可以抛出异常以防止执行其余的步骤。但还有其他方法可以像skip_this_scenario

那样做

1 个答案:

答案 0 :(得分:0)

如果我正确理解你的问题,你想要做一些事情&#34;当&#34; 11和&#34; 12&#34;被发现但不是在&#34; 22&#34;找到了。

为此,您可以按如下方式重写您的方案:

Scenario:
  When some "11" is found
  And some "12" is found
  Then do something

Scenario:
  When some "21" is found
  And some "22" is found
  Then do not do something

请注意以下事项: *每行仅使用一个关键字(给定/当/然后/和/但) *您使用的关键字与Cucumber的执行无关,但在您的方案的可读性方面确实很重要 *使用&#39;鉴于&#39;设置前提条件(通过测试所需的系统的已知状态) *使用&#39;当&#39;对于执行的操作(您要验证它是否具有预期结果) *使用&#39;然后&#39;描述预期结果

所以你可能还需要使用你的某些条件&#34;作为给定。像这样:

Given "some condition" is present
When "11" is found
And "12" is found
Then do something

Given "some condition" is not present
When "11" is found
And "12" is found
Then do not do something