我有一个名为DealDeck()的公共静态void方法,该方法从名为deck的ArrayList中获取对象,并根据它们在列表中的位置将其分离并放入4个不同的ArrayList中。是否有一个JUnit测试来检查该方法是否按计划运行?
public static void dealDeck() {
for (int i=0; i<28; i++) {
if (i%4 == 0){
playerOneHand.add(deck.get(i));
}
else if (i%4 == 1) {
playerTwoHand.add(deck.get(i));
}
else if (i%4 == 2) {
playerThreeHand.add(deck.get(i));
}
else if (i%4 == 3) {
playerFourHand.add(deck.get(i));
}
}
}
是否可以测试此方法?
答案 0 :(得分:0)
是的,应该的……
不过,要提供更多帮助:我只是在player*Hand
Object
s上声明。 (我不会评论您可能应该为方法设置hands参数,以便可以更广泛地使用它)。类似于以下内容的方法应该可以工作(某些方法尚未编写,但我希望您可以从名称中猜测它们的作用):
@Test
public void testHandsAreAsExpected() {
player*Hand.clear();
initialiseDeckInSuitRotationOrder(); // Heart, Diamond, Club, Spade, ...
DeckDealer.dealDeck();
checkHandAllOfSuit(player1Hand, Suits.HEARTS);
// Repeat for other hands
}
我假设我们在这里谈论的是普通纸牌,但只要您可以断言在初始状态下牌组应该完成的交易,就可以了无论您要处理什么类型的“甲板”和“手”。