mak*_*aki 2 java datatable cucumber
我正在将我的 Cucumber 版本从旧的 info.cukes 更新到最新的 io.cucumber (v6.8.1),并且由于变压器行为的改变,我的一些测试失败了。过去可以传递空字符串,但现在它们被转换为null. 如何将空字符串传递给 DataTable 参数?
Scenario: Testing datatable with empty string
When Passing empty string as second parameter
| first | second |
| simple | |
Run Code Online (Sandbox Code Playgroud)
Scenario: Testing datatable with empty string
When Passing empty string as second parameter
| first | second |
| simple | |
Run Code Online (Sandbox Code Playgroud)
由于 v5.0.0 数据表中的空单元格变为空值而不是空字符串。通过replaceWithEmptyString = "[blank]"在数据表类型上使用,可以显式插入空字符串。
这可以实现以下功能:
Feature: Whitespace
Scenario: Whitespace in a table
Given a blank value
| key | value |
| a | [blank] |
Run Code Online (Sandbox Code Playgroud)
Feature: Whitespace
Scenario: Whitespace in a table
Given a blank value
| key | value |
| a | [blank] |
Run Code Online (Sandbox Code Playgroud)
请注意,您不需要使用
@given("A blank value")
public void givenABlankValue(Map<String, String> map){
// map contains { "key":"a", "value": ""}
}
@DataTableType(replaceWithEmptyString = "[blank]")
public String stringType(String cell) {
return cell;
}
Run Code Online (Sandbox Code Playgroud)
您可以使用:
List<Map<String, String>> maps = dataTable.asMaps(String.class, String.class);
Run Code Online (Sandbox Code Playgroud)
另见:https : //github.com/cucumber/cucumber-jvm/blob/main/release-notes/v5.1.0-v5.7.0.md#v520-redefine-build-in-data-table-types