JUnit测试一个void方法?

时间:2019-04-17 21:09:43

标签: java junit

我有一个名为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));
        }
    }
}   

是否可以测试此方法?

1 个答案:

答案 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
}

我假设我们在这里谈论的是普通纸牌,但只要您可以断言在初始状态下牌组应该完成的交易,就可以了无论您要处理什么类型的“甲板”和“手”。