我有一个名为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
s上做出断言。 (我不打算评论你应该为你的方法制作参数的事实,以便它可以更全面地使用)。像下面的东西应该工作(一些方法没有写,但我希望你能猜出他们从名称做什么):
@Test
public void testHandsAreAsExpected() {
player*Hand.clear();
initialiseDeckInSuitRotationOrder(); // Heart, Diamond, Club, Spade, ...
DeckDealer.dealDeck();
checkHandAllOfSuit(player1Hand, Suits.HEARTS);
// Repeat for other hands
}
我假设我们在这里谈论正常的扑克牌,但只要你可以断言这笔交易应该在它的初始化状态下对牌组做什么,那对于任何类型的“牌组”和“手牌”都应该没问题。 '你正在处理。