我想使用 AssertJ 庫檢查單元測驗中 Map 值內的串列:
public class Group {
List<Player> players = new ArrayList<>();
public Group(List<Player> players) {
this.players.addAll(players);
}
}
Map<Character, Group> generatedGroups = receiveFromAnyMethod();
在地圖內我有這個:
A: Group A -> players(playerA, playerB)
如何查看組內的串列?我想我應該使用一個提取,flatExtracting 方法,但我不知道如何。
uj5u.com熱心網友回復:
for (Map.Entry<Character, Group> entry : generatedGroups.entrySet()) {
List<Player> players = entry.getValue().getPlayers();
// Do your check here
}
uj5u.com熱心網友回復:
假設character是輸入鍵,player1并且player2是內部串列的預期的內容,你可以這樣寫:
assertThat(generatedGroups.get(character))
.extracting("players", as(InstanceOfAssertFactories.LIST))
.containsExactly(player1, player2);
或型別安全,以防Group提供getPlayers():
assertThat(generatedGroups.get(character))
.extracting(Group::getPlayers, as(InstanceOfAssertFactories.LIST))
.containsExactly(player1, player2);
參考:
extracting(String, InstanceOfAssertFactory)extracting(Function, InstanceOfAssertFactory)Assertions.as(InstanceOfAssertFactory)InstanceOfAssertFactories.LISTInstanceOfAssertFactories.list(Class)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/350227.html
