Java JUnit测试中的断言

时间:2018-01-04 18:27:16

标签: java junit assert

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

这是我在班级SELECT week, AVG(my_value) OVER(ORDER BY week ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS avg_my_value FROM (SELECT id, DATE_TRUNC('week', created_at) AS week, my_value FROM my_table ORDER BY week ASC ) GROUP BY week

上的方法
SumOfAllSeries

这是我试图在我的JUnit上做的,我似乎无法找到它,请问我该如何测试这段代码。我有一个错误: 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; } 当我使用The method assertArrayEquals(int[], int[]) in the type Assert is not applicable for the arguments (int[], int)打印时垃圾并说预计是4.

AssertEquals

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

class SumOfAllSeriesTest {
    @Test
    void testGetIndex() {

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

        assertEquals(4, calculateIndex);


    }

}

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

1 个答案:

答案 0 :(得分:1)

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

无论如何,要断言最大值或总和的索引,您不需要在测试中使用assertArrayEquals()
您不希望断言数组内容,而是索引或总和 所以请改为:

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

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