Cucumber Java中如何使用DataTable将参数存储到Map中
Cucumber DataTable 转 List
可行性说明
你采用的将Feature文件表格参数转为List
编译失败原因
你当前代码无法编译的核心问题是泛型语法错误:List <Map <String, String> 声明中缺少Map泛型对应的闭合右尖括号,同时多余的空格也可能导致部分IDE语法校验报错。
正确实现代码
基础版本(兼容所有Cucumber版本)
// 修正泛型声明,补全右尖括号,移除不必要的空格 List<Map<String, String>> expected = dataTable.asMaps(String.class, String.class);
简化版本(适用于Cucumber 7及以上版本)
高版本Cucumber对asMaps做了优化,无需传入类型参数即可自动转换为String类型的键值对:
List<Map<String, String>> expected = dataTable.asMaps();
完整Step定义示例
import io.cucumber.datatable.DataTable; import io.cucumber.java.en.Then; import java.util.List; import java.util.Map; public class UserStepDefinition { @Then("the user's name and password should be displayed as what we expected") public void verifyUserCredentials(DataTable dataTable) { List<Map<String, String>> expected = dataTable.asMaps(String.class, String.class); // 此处添加你的对比逻辑,遍历expected和实际返回的Map列表逐一校验即可 } }
内容的提问来源于stack exchange,提问作者Jackie Ma
相关产品推荐
相关产品推荐

