cucumber-java - Cucumber 数据表到 map 的转换

标签 cucumber-java

我正在使用 cucumber 数据表。我想将此数据表转换为 map 而不是列表。 那么基本上,如果我使用标题行作为键,使用数据行作为键的值,会怎么样。 我该怎么做?

让我分享 1 个例子来更清楚地说明。

给定以下动物:

  | Type  | BabyAnimal |    
  | cow   | Calf       |
  | horse | Pony       |
  | sheep | Lamb       |

而不是创建 List<List<String>>在这里,使用 List<Map<String,String>> 是更好的方法。这里。 map 的键应包含“Type”和“BabyAnimal”,值应包含相应的值。 所以 map 实体将是:

<Type,cow>,<BabyAnimal,Calf>
<Type,horse>,<BabyAnimal,Pony>
<Type,sheep>,<BabyAnimal,Lamb>

我们该怎么做呢? 我觉得这是一种更好的方法,因为我们是从键中获取数据。 例如List(1).Map.get(Type) 而在 List 的情况下,我们必须执行 get(0)、get(1),并且有可能使用不正确的数据。

最佳答案

并添加第二个答案,因为问题中的通用类型已被 html 吞噬。

给定以下动物:

| Type  | BabyAnimal |    
| cow   | Calf       |
| horse | Pony       |
| sheep | Lamb       |

假设您希望这是您的步骤定义:

@Given("all baby animal details")
public void allMapDetails(List<Map<String, String>> animals) {
    System.out.println(animals);
}

然后表格将自动转换为字符串到字符串的映射列表。

关于cucumber-java - Cucumber 数据表到 map 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50907441/

相关文章:

cucumber - 如何在不运行测试的情况下获取所有标签和 cucumber 场景

java - Cucumber 中可以同时使用 DataTable 和 Parameter 吗?

java - 可以在没有构造函数参数的情况下使用 PicoContainer (依赖注入(inject))吗?

spring - 是否可以在集成测试期间禁用 Spring 的 @Async?

java - JSONException 字符串无法转换为 JSONObject

testing - 我是 cucumber 的新手。我正在运行两个功能文件。运行时显示错误。如果只运行第一个标签,它运行良好

eclipse - Eclipse 无法识别 Cucumber 功能

java - com.spun.util.FormattedException : Didn't find cucumber. C:\Users\nsyed\Awris2\LearnDatabase 下的 api.testng.AbstractTestNGCucumberTests

selenium - 是否可以将 Java-Enum 作为参数从 cucumber 特征文件中传递

java - 带有 cucumber 的正则表达式与给出错误的字符串不匹配,但如果多次写入测试,则会匹配相同的字符串