Java JUnit 测试中的断言

Assertion in Java JUnit Testing

我是 java 的新手,我正在学习 JUnit 测试,我在网上找到的所有示例都是关于将两个数字相加。

这是我在 class SumOfAllSeries

上的方法
 static int getIndex(int[] array) {

    int max = 0;

    for(int i= 0; i < array.length; i++) {

        if(array[i] > array[max]) {

            max = i;
        }   
    }

    return max;
}

这是我试图在我的 JUnit 上做的,我似乎无法找到正确的方法,请问我如何测试这个 code.I 有一个错误:The method assertArrayEquals(int[], int[]) in the type Assert is not applicable for the arguments (int[], int) 当我使用 [=16] =] 它打印垃圾并表示预期为 4。

class SumOfAllSeriesTest {
    @Test
    void testGetIndex() {

        int array[] = {2,4,5,6,7};
        int calculateIndex = SumOfAllSeries.getIndex(array);

        assertEquals(4, calculateIndex);


    }

}

更新:我尝试将数组更改为 4 并使用

assertEquals

这是正确的方法吗?我没有人可以问,我想了解这个概念。

首先请注意 getIndex() 方法不计算总和。
它returns数组最大值的索引。

无论如何,要断言最大值或总和的索引,您不需要在测试中使用 assertArrayEquals()
您不想断言数组内容,而是索引或总和。
所以这样做:

Assert.assertEquals(24, results); // for sum

Assert.assertEquals(4, results); // for index