Bob*_*den 6 java intellij-idea cucumber
特征文件:
Scenario: Login to application
Given I open my application
And I login with following credentials
| admin | pass1234 |
Run Code Online (Sandbox Code Playgroud)
步骤定义:
@When("^I login with following credentials$")
public void i_login_with_following_credentials(DataTable dt) {
List<String> list = dt.asList(String.class);
System.out.println("Username - " + list.get(0));
System.out.println("Password - " + list.get(1));
}
Run Code Online (Sandbox Code Playgroud)
错误:
io.cucumber.datatable.UndefinedDataTableTypeException: Can't convert DataTable to List<java.lang.String>.
There was a table cell converter but the table was too wide to use it.
Please reduce the table width or register a TableEntryTransformer or TableRowTransformer for java.lang.String.
<cucumber.version>5.4.1</cucumber.version>
<junit.version>4.13</junit.version>
Run Code Online (Sandbox Code Playgroud)
您能给建议吗?具体应该添加什么?谢谢。
您正在尝试将数据表转换为字符串列表。因为列表是垂直的,并且String可以恰好占据一个单元格,所以 Cucumber 期望您拥有一张只有一列的表格。
| admin |
| pass1234 |
Run Code Online (Sandbox Code Playgroud)
但你也可以转置数据表:
| admin |
| pass1234 |
Run Code Online (Sandbox Code Playgroud)
或者直接访问单元格:
String username = dt.cell(0,0);
String password = dt.cell(0,1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11342 次 |
| 最近记录: |