Java JUnit断言数组在';你不是

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

我正在使用JUnit测试一个mergesort函数。下面是我的一个测试用例:

@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()
的存在一无所知。