JUnit测试一个void方法?

问题描述 投票:0回答:1

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

可以或应该测试这种方法吗?

java junit
1个回答
0
投票

是的它可以,是的它应该......

为了更有帮助:我只是在player*Hand Objects上做出断言。 (我不打算评论你应该为你的方法制作参数的事实,以便它可以更全面地使用)。像下面的东西应该工作(一些方法没有写,但我希望你能猜出他们从名称做什么):

@Test
public void testHandsAreAsExpected() {
    player*Hand.clear();
    initialiseDeckInSuitRotationOrder(); // Heart, Diamond, Club, Spade, ...

    DeckDealer.dealDeck();

    checkHandAllOfSuit(player1Hand, Suits.HEARTS);
    // Repeat for other hands
}

我假设我们在这里谈论正常的扑克牌,但只要你可以断言这笔交易应该在它的初始化状态下对牌组做什么,那对于任何类型的“牌组”和“手牌”都应该没问题。 '你正在处理。

© www.soinside.com 2019 - 2024. All rights reserved.