gpt4 book ai didi

java - AssertJ:FlatMap调用提取后的列表列表

转载 作者:行者123 更新时间:2023-12-05 00:05:40 25 4
gpt4 key购买 nike

所以我有一个String/String列表对映射,我想做的是在提取之后,将返回的列表组合成一个列表,在该列表上我可以执行更多的断言:

MyTest.java

Map<String, List<String>> testMap  = new HashMap<>();
List<String> nameList = newArrayList("Dave", "Jeff");
List<String> jobList = newArrayList("Plumber", "Builder");
List<String> cityList = newArrayList("Dover", "Boston");

testMap.put("name", nameList);
testMap.put("job", jobList);
testMap.put("city", cityList);

assertThat(testMap).hasSize(3)
.extracting("name", "city")
//not sure where to go from here to flatten list of lists
// I want to do something like .flatMap().contains(expectedValuesList)

当我调用提取时,它会将列表值拉出到列表列表中,这很好,但是在此之后我无法调用flatExtracting,因为没有要传递的属性名称,从我的阅读中似乎看不到像自定义提取器将是适当的(否则我不完全确定如何将其放在一起)。还有另一种方法可以使返回的列表列表变平吗?我可以走更长一点的路线,在列表列表上做断言,或者在断言之前使用lambda来收集结果,但是我想保持断言为一个(例如,一些 map 断言然后在内容上链接一些断言) )

最佳答案

flatExtracting尚未在 map 声明API中,但您可以执行以下操作:

assertThat(testMap)
.hasSize(3)
.extracting("name", "city", "job")
.flatExtracting(list -> ((List<String>) list))
.contains("Dave", "Jeff", "Plumber", "Builder", "Dover", "Boston");

我结束了创建 https://github.com/joel-costigliola/assertj-core/issues/1034以支持该用例的工作

关于java - AssertJ:FlatMap调用提取后的列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45081542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com