如何将黄瓜方案作为一个步骤?

时间:2016-12-07 10:29:33

标签: cucumber cucumber-java

我有一个包含许多步骤的场景,其目的是生成数据,例如:

Scenario: Data generation
Given dataGen statement 1
And dataGen statement 2

...
And dataGen statement 100

我希望将这整个场景(即所有100个语句)用作另一个场景中的单个步骤。我想做点什么:

scenario: Data generation and then assert
(everything in previous scenario)
Then I assert my assertion

但是复制和粘贴所有东西都是愚蠢的。

黄瓜是否有办法将场景调用作为一个步骤? 或者将100语句组合成一个整体的结构并调用它?

谢谢,

1 个答案:

答案 0 :(得分:0)

不确定是否有办法在cucumber-jvm中调用另一个方案步骤。在ruby实现中允许某种嵌套步骤。你可以试试下面的java。

将您的场景转换为场景大纲,其中两个表具有自己的标记。当您只想生成数据时,将@Data标记传递给您的跑步者类cucumberoptions。并且@DataAndAssert当需要两个操作时。将断言步骤中的逻辑基于布尔标志的值。

    Scenario Outline: Data generation and then assert
    Given dataGen statement 1
    And dataGen statement 2

    ...
    And dataGen statement 100
    Then I assert my assertion <flag>

    @Data
    Examples: Data Generation Only
    | flag |
    | false |

    @DataAndAssert
    Examples: Data Generation And Assertion
    | flag |
    | true |