2016-12-07 61 views
0

我有一個具有許多步驟,並且其整個目的是數據生成,例如,一個場景:如何運行黃瓜場景作爲一個步驟?

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條語句分組爲一個整體並稱之爲?

感謝,

回答

0

不知道是否有一種方法可以從另一個調用黃瓜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 | 
+0

這是一種解決方法。但是,如果dataGen被很多測試用例使用,這並不是那麼方便。我正在尋找一些至少可以在@Before中運行功能的東西。 – user1559625

+0

在@Before鉤子中,黃瓜不會調用特徵和步驟定義。如果你想這樣做,你需要使用一個叫做你的步驟定義代碼的包裝器方法來自己調用它。 – Grasshopper

+0

這個東西是'@before'鉤子只會調用java代碼,我不想複製從黃瓜步轉換到@before鉤子的重複的java代碼的百行。它擊敗了爲什麼我首先將這些數據記錄在黃瓜中的目的。 – user1559625