如何使用 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 |
所以在 Step 文件中
public void validationMethod(String validation field2,String validation field2,String validation field3){
............
............
}
因此,如果我有更多字段,那么我的方法也会消耗更多参数。
现在我想在方法中将所有验证字段作为对象传递。那么可以使用黄瓜jvm吗?如果可能的话,任何人都可以提供一些示例代码的建议。
这更像是评论:可变长度参数列表对你有用吗?不过,您需要知道参数的顺序,而没有参数名称可以提供帮助。
public void multiParams(String... val){
}
你可以试试这样的
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>
。为此,在步骤 (不是示例 table)中添加一个 header,其名称与 ValidationData
class 中的变量相匹配,黄瓜将填充将数据放入对象中。
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) {
}
我正在寻找将每个场景大纲示例行作为 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 |
所以在 Step 文件中
public void validationMethod(String validation field2,String validation field2,String validation field3){
............
............
}
因此,如果我有更多字段,那么我的方法也会消耗更多参数。
现在我想在方法中将所有验证字段作为对象传递。那么可以使用黄瓜jvm吗?如果可能的话,任何人都可以提供一些示例代码的建议。
这更像是评论:可变长度参数列表对你有用吗?不过,您需要知道参数的顺序,而没有参数名称可以提供帮助。
public void multiParams(String... val){
}
你可以试试这样的
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>
。为此,在步骤 (不是示例 table)中添加一个 header,其名称与 ValidationData
class 中的变量相匹配,黄瓜将填充将数据放入对象中。
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) {
}