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
我是 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