当前位置: 首页 > 知识库问答 >
问题:

JUnit测试无效方法?

段干瑞
2023-03-14

我有一个名为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个答案

郑波
2023-03-14

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

不过,更有用的是:我只会在玩家*手上断言(我不想评论这样一个事实,即您可能应该将手参数添加到方法中,以便可以更全局地使用它)。类似于以下的方法应该可以工作(一些方法没有编写,但我希望您可以从名称中猜测它们的作用):

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

    DeckDealer.dealDeck();

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

我假设我们在这里讨论的是普通的扑克牌,但只要你能断言在初始化状态下,牌堆应该做什么,这对于你正在处理的任何类型的“牌堆”和“手牌”都应该是好的。

 类似资料:
  • 我试图用Junit测试内部有布尔条件的void方法 在这种情况下,当verifyName()使用JUnit返回时,测试void方法的最佳方法是什么?? 预期测试场景: verifyName()返回--

  • 问题内容: 我有一个充满void方法的Java类,我想进行一些单元测试以获得最大的代码覆盖率。 例如我有这种方法: 它的名字不好用是因为我翻译了代码以更好地理解。每种方法均会验证参数是否在某种程度上有效并且编写正确。 范例: 我的单元测试很好地涵盖了小的方法,因为我要求它们检查ErrorFile是否包含错误消息,但是我看不到如何测试方法checkIfValidElements,它什么也不返回或什么

  • 问题内容: 我在下面的方法中编写测试用例时遇到问题: 这是我编写的测试用例,但我认为此测试用例中存在继承问题或逻辑问题。应该是一个非常简单的示例,但无法弄清楚。这是我写的代码: 问题答案: 两件事情 : 您正在静态调用非静态方法。该方法应声明为静态: public static boolean evenNum(double num){ } 您没有正确输入方法的名称。仔细看。还考虑将其重命名为更易读

  • 我有一个充满void方法的java类,我想做一些单元测试以获得最大的代码覆盖率。 例如,我有以下方法: 它的名字不好,原因是我翻译了代码以便更好地理解。每个方法都验证参数是否以某种方式有效,是否编写得很好。

  • 问题内容: 我编写了一个类,它从控制台输入数据,并在main方法中输入参数。main方法针对不同的控制台输入调用不同的方法,并且针对不同的参数调用不同的函数。因此,我想通过模仿文件中的这些输入来使用Junit测试此主要方法。我该怎么做?junit中是否有特殊规定来测试该类的主要方法? 问题答案: 要提供来自文件的输入,请创建一个并将其设置为流。您可能要在main方法完成后将原始文件放回原处,以确保

  • 大家好,我需要为我的方法编写单元测试。我有点麻烦,因为我是JUnit的新手。我需要为这个方法写一个测试。这是我的方法 我试过了,但我被挡了,这是我的结果 附言:测试通过了,但我不明白我的测试是不是真的