說我有一類這樣的:如何使用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,什麼是最好的方式測試characterAges包含「佛羅多」字符?對於年齡,我可以這樣做:
assertThat(characterAges).hasValue(34);
而且我知道我可以這樣做:
assertThat(characterAges.keySet())
.extracting("name")
.contains("Frodo");
但後來我失去了我的流暢性。我真的希望它是這樣的:
assertThat(characterAges)
.hasKey(key.extracting("name").contains("Frodo")
.hasValue(34);
甚至更好,這樣我可以確保我的key和value匹配:
assertThat(characterAges)
.hasEntry(key.extracting("name").contains("Frodo"), 34);
是這樣的可能嗎?
不錯的解決方案,約翰 - 謝謝。 – pduncan