簡體   English   中英

如何使用Cucumber-Jvm在步驟方法中將方案出行數據作為對象傳遞

[英]How to pass Scenario out line data as a object in step method using cucumber-jvm

我正在尋找一種解決方案,以將每個方案概要示例行作為cucuber-jvm中的對象傳遞。

例如,如果我考慮一種情況

Scenario Outline: example
Given I have a url 
When I choose <input_1>
Then page should hold field1 value as <validation field1> field2 value as <validation field2> fieldn value as <validation fieldn> 

Examples:
| input_1        |  validation field1 |validation field2|validation field n|
| input_1_case_1 |  expected value 1  |expected value 1 |expected value n  |

所以在步驟文件中

public void validationMethod(String validation field2,String validation field2,String validation field3){
............
............
} 

因此,如果我有更多的字段,那么我的方法也會消耗更多的參數。

現在,我想將所有驗證字段作為對象傳遞給方法。 那么可以使用黃瓜jvm嗎? 如果可能的話,任何人都可以提供一些示例代碼建議。

你可以嘗試這樣的事情

Then Use the following values
| <validation field1> | <validation field2> | <validation field3> |

Examples:
| input_1        |  validation field1 |validation field2|validation field3 |
| input_1_case_1 |  expected value 1  |expected value 2 |expected value 3  |
| input_2_case_2 |  expected value 1  |expected value 2 |expected value 3  |

Step Definition
@Then("^Use the following values$")
public void useFollVal(List<String> valFields) {
     //The values will be inside the list. Use index to access

}

您甚至可以獲取一個驗證對象而不是字符串列表,即List<ValidationData> 為此,在步驟 (不是示例表)中添加一個標題,該標題的名稱與ValidationData類中的變量匹配,黃瓜將把數據填充到該對象中。

Then Use the following values
| valField1 | valField2 | valField3 |   <<<--- Header to add 
| <validation field1> | <validation field2> | <validation field3> |     

        valField1 -> private String valField1; in ValidationData

    Step Definition
        @Then("^Use the following values$")
        public void useFollVal(List<ValidationData> valObject) {

        }

這更多的是評論:可變長度參數列表對您有用嗎? 但是,您將需要知道參數的順序,而沒有參數名稱來提供幫助。

public void multiParams(String... val){

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM