Java 使用AssertArrayQuals使用JUnit进行测试时出错
测试此代码位时:Java 使用AssertArrayQuals使用JUnit进行测试时出错,java,testing,junit,junit4,Java,Testing,Junit,Junit4,测试此代码位时: public static int maxRowAbsSum(int[][] array) { int[][] maxRowValue = { {3, -1, 4, 0}, {5, 9, -2, 6}, {5, 3, 7, -8} };
public static int maxRowAbsSum(int[][] array) {
int[][] maxRowValue = {
{3, -1, 4, 0},
{5, 9, -2, 6},
{5, 3, 7, -8}
};
int maxRow = 0;
int indexofMaxRow = 0;
for (int row = 0; row < maxRowValue.length; row++) {
int totalOfRow = 0;
for (int column = 0; column < maxRowValue[row].length; column++){
if (maxRowValue[row][column] > 0) {
totalOfRow += maxRowValue[row][column];
} else {
totalOfRow -= maxRowValue[row][column];
}
}
if (totalOfRow > maxRow) {
maxRow = totalOfRow;
indexofMaxRow = row;
}
}
System.out.println("Row " + indexofMaxRow + " has the sum of " + maxRow);
return indexofMaxRow;
}
这突出了红色的assertArrayEquals说:
类型断言中的方法AssertArrayQuals(int[],int[])不适用于参数(int[],int)
我写错了吗?我如何用JUnit测试它,使它没有错误或错误 您正在尝试将
int
(int[]
)数组与从maxrawabssum()
方法返回的单个int
进行比较。这是行不通的,它将苹果和橙子进行比较,JUnit用它的方法签名来防止这种情况
您应该编写测试以匹配maxRowAbsSum()
方法返回类型,例如:
@Test
public void shouldCalculateMaxRowAbsSum() {
int expected = 3; // example value, change to match your test scenario
assertEquals(expected, Exercise2.maxRowAbsSum(numArray));
}
您正在尝试将
int
(int[]
)数组与从maxRowAbsSum()
方法返回的单个int
进行比较。这是行不通的,它将苹果和橙子进行比较,JUnit用它的方法签名来防止这种情况
您应该编写测试以匹配maxRowAbsSum()
方法返回类型,例如:
@Test
public void shouldCalculateMaxRowAbsSum() {
int expected = 3; // example value, change to match your test scenario
assertEquals(expected, Exercise2.maxRowAbsSum(numArray));
}
i是一个int数组,而Exercise2.maxRowAbsSum(numArray)返回int。
无法比较它们,因此会出现错误。i是一个int数组,而Exercise2.maxroabssum(numArray)返回int。
比较它们是不可能的,因此会出现错误。我修复了代码,但仍然使用Karol的示例:
与刚刚返回具有最大值的行的索引的
return indexOfMaxRow
不同,我将其更改为return maxRow
,它返回的是23,而不是JUnit期望的2。我修复了代码,但仍然使用了Karol的示例:
我将其更改为
return maxRow
,而不是刚刚返回具有最大值的行的索引的return indexOfMaxRow
,它返回的是23,而不是JUnit期望的2。什么失败了,错误消息是什么?值3
就是一个例子,调整它以匹配您的测试场景。我第一次将其更改为23,它应该是23。它输出所有行中的最大绝对值总和。当使用JUnit进行测试时,它表示预期的值是“2”,而不是“23”。程序输出23 soI不明白为什么它期望2。什么失败了,错误消息是什么?值3
就是一个例子,调整它以匹配您的测试场景。我第一次将其更改为23,它应该是23。它输出所有行中的最大绝对值总和。当使用JUnit进行测试时,它表示预期的值是“2”,而不是“23”。程序输出23个soI我不明白为什么它期望2。