首页 > 解决方案 > 是否可以定义示例表并将整个表作为数据传递给步骤定义参数?

问题描述

以一个简单的特征轮廓为例:

Scenario Outline: Example Table Experiment
Given User Does Something with **{ExampleTable}**

Examples:
|   Key1   |   Key2   |   Key3   |
|Key1-Vaue1|Key2-Vaue1|Key3-Vaue1|
|Key1-Vaue2|Key2-Vaue2|Key3-Vaue2|
|Key1-Vaue3|Key2-Vaue3|Key3-Vaue3|

然后在步骤定义方面,我们有类似的东西:

    @When("^User Does Something with$")
    public void user_does_something_with_DataTables_asMap(**ExamplTable et**) {
       //code to extract values from example table
    
    }

这可以实现吗?

标签: bddcucumber-java

解决方案


这可以使用垂直方向的数据表来实现。第 1 列将包含键,第 2 列将包含值。您需要在示例表中的每一列的值列中添加一个标记:

Scenario Outline: Example Table Experiment
    Given User Does Something with
        | Key  | Value  |
        | Key1 | <Key1> |
        | Key2 | <Key2> |
        | Key3 | <Key3> |

Examples:
    |   Key1   |   Key2   |   Key3   |
    |Key1-Vaue1|Key2-Vaue1|Key3-Vaue1|
    |Key1-Vaue2|Key2-Vaue2|Key3-Vaue2|
    |Key1-Vaue3|Key2-Vaue3|Key3-Vaue3|

步骤定义将接收单个 DataTable 参数。


推荐阅读