Java JUnit断言数组在';你不是
我正在使用JUnit测试一个mergesort函数。下面是我的一个测试用例:Java JUnit断言数组在';你不是,java,arrays,junit,Java,Arrays,Junit,我正在使用JUnit测试一个mergesort函数。下面是我的一个测试用例: @Test //test using randomly generated numbers public void MergeSortTest002() { long seed = System.currentTimeMillis(); Random rng = new Random(seed); Integer[] TestArray = new
@Test
//test using randomly generated numbers
public void MergeSortTest002()
{
long seed = System.currentTimeMillis();
Random rng = new Random(seed);
Integer[] TestArray = new Integer[1000];
int MAX_VALUE = Integer.MAX_VALUE;
for(int i=0; i<1000; i++) {
//this will generate positive and negative numbers from
// -MAX_VALUE/2 to +MAX_VALUE/2
Integer newNum = rng.nextInt(MAX_VALUE/2) - MAX_VALUE;
TestArray[i] = newNum;
}
Integer[] correctArray = TestArray;
Arrays.sort(correctArray);
MergeSort.mergeSort(TestArray);
Assert.assertArrayEquals(correctArray,TestArray);
}
@测试
//使用随机生成的数字进行测试
公共无效合并SORTTEST002()
{
长种子=System.currentTimeMillis();
随机rng=新随机(种子);
整数[]TestArray=新整数[1000];
int MAX_VALUE=Integer.MAX_VALUE;
对于(int i=0;i而言,问题就在这里:
Integer[] correctArray = TestArray;
您正在将引用复制到数组,而不是数组的内容
若要修复,请将该行更改为:
Integer[] correctArray = TestArray.clone();
啊,谢谢。我想这就是问题所在,但对.clone()
的存在一无所知。