我写了一个方法,我必须输入两个int数组和一个int值。该方法通过两个数组并将每个索引除以int值。如果两个第一个索引都可以通过值进行控制,它会将true和false值存储在第三个(新)布尔数组中。
public class PIArraysTest {
@Test
public void testPairwiseContainsDividableBy()
{
PIArrays pIArrays1 = new PIArrays();
assertEquals(new boolean[] {true,false,false},
pIArrays1.pairwiseContainsDividableBy(new int[] {4,8,12},new int[]
{24,19,18}, 4));
}
}
如果a = {4,8,12},b = {24,19,18}且divisor = 4,则结果变为{true,false,false}。一切正常。我的测试方法再次出现问题:
expected:<[Z@1bf585b> but was:<[Z@f2c2ba>
---
java.lang.AssertionError: expected:<[Z@1bf585b> but was:<[Z@f2c2ba>
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:743)
at org.junit.Assert.assertEquals(Assert.java:118)
at org.junit.Assert.assertEquals(Assert.java:144)
at PIArraysTest.testPairwiseContainsDividableBy(PIArraysTest.java:76)
编译再次正常工作。但是,如果运行测试,我会收到此错误:
assertEquals(new boolean[] {true,false,false},
pIArrays1.pairwiseContainsDividableBy(new int[] {4,8,12},new int[]
{24,19,18}, 4));
它将我重定向到此行作为错误的来源:
@Test
public void testPairwiseContainsDividableBy()
{
PIArrays pIArrays1 = new PIArrays();
boolean[] test1 = pIArrays1.pairwiseContainsDividableBy(new int[]{4,8,12},new int[] {24,19,18}, 4);
boolean[] result = {true, false, false};
assertArrayEquals(result, test1);
编辑:
所以我试了一下,想出了这个:
{{1}}
}
这导致编译器错误:不适合assertArrayEquals方法
答案 0 :(得分:0)
assertEquals(Object[], Object[])
不会按项目比较数组。因此,不推荐使用它,您应该使用assertArrayEquals(boolean[], boolean[])
。
您至少需要JUnit 4.12。 (见https://github.com/junit-team/junit4/commit/26d34db6c2c12b0fee9ae3d307b3f18fe0ee62da#diff-73eb269f6f932a6bd4cc17c2cfd54571)