如何使用 assertj 执行更深入的键和值匹配
假设我有一个这样的类:
public class Character {
public Character(String name){
this.name = name;
}
private String name;
public String getName() { return name; }
}
后来,地图
Map<Character, Integer> characterAges = new HashMap<Character, Integer>();
characterAges.put(new Character("Frodo"), 34);
使用assertj,测试角色Ages是否包含“Frodo”角色的最佳方法是什么?对于年龄,我可以做:
assertThat(characterAges).hasValue(34);
我知道我可以做到:
assertThat(characterAges.keySet())
.extracting("name")
.contains("Frodo");
但后来我失去了流利度。我真正想要的是这样的:
assertThat(characterAges)
.hasKey(key.extracting("name").contains("Frodo")
.hasValue(34);
或者更好的是,这样我就可以确保我的键和值匹配:
assertThat(characterAges)
.hasEntry(key.extracting("name").contains("Frodo"), 34);
这样的事情可能吗?