【发布时间】:2022-01-01 11:47:06
【问题描述】:
我正在尝试使用两个返回二维数组/矩阵的对象创建 JUnit 测试,这是我的构造函数:
public Matrix(int[][] array) {
this.matrix = Arrays.copyOf(array, array.length); }
这是我的测试代码:
@Test
void addValue() {
int[][] array = {{1, 2, 3}, {1, 2, 3}};
int[][] newArray = {{1, 2, 3, 4}, {1, 2, 3}};
Matrix result = new Matrix(array);
Matrix expected = new Matrix(newArray);
assertEquals(expected,result.addValue(0,4));
}
addValueInSpecificLine 是我创建的一个函数,在本例中,它在第 0 行添加了值 4。
这是我测试的错误:
org.opentest4j.AssertionFailedError: expected: Matrix@3c0a50da<Array{array=[[1, 2, 3, 4], [1, 2, 3]]}> but was: Matrix@646be2c3<Array{array=[[1, 2, 3, 4], [1, 2, 3]]}>
Expected :Array{array=[[1, 2, 3, 4], [1, 2, 3]]}
Actual :Array{array=[[1, 2, 3, 4], [1, 2, 3]]}
预期与实际相同,但由于某种原因测试为假。
有什么建议吗?
【问题讨论】:
-
我建议看看
Arrays::equals和Assert::assertArrayEquals。另请参阅this question。