我有一个名为dealDeck((的公共静态void方法,它从名为deck的ArrayList中获取对象,并根据它们在列表中的位置将它们分离并放入4个不同的ArrayLists中。是否有 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));
}
}
}
可以或应该测试此方法吗?
是的,它可以,是的,它应该...
不过为了更有用:我只是在player*Hand
Object
上做出断言。 (我不打算评论这样一个事实,即您可能应该为您的方法制作手参数,以便它可以更全局地使用(。 像下面这样的东西应该可以工作(有些方法没有编写,但我希望你能从名称中猜出它们的作用(:
@Test
public void testHandsAreAsExpected() {
player*Hand.clear();
initialiseDeckInSuitRotationOrder(); // Heart, Diamond, Club, Spade, ...
DeckDealer.dealDeck();
checkHandAllOfSuit(player1Hand, Suits.HEARTS);
// Repeat for other hands
}
我假设我们在这里谈论的是普通的扑克牌,但只要你能断言交易应该在初始化状态下对牌组做什么,这对你正在处理的任何类型的"牌组"和"手牌"来说都应该没问题。