Java TestNG参数化测试-测试之间意外的依赖关系

Java TestNG参数化测试-测试之间意外的依赖关系,java,intellij-idea,testng,Java,Intellij Idea,Testng,我最近开始学习Java(我是.net的家伙),我对以下单元测试有问题: @Test(dataProvider = "rotatedArray") public void given_array_of_items_rotates_array(Integer[] originalArray, int rotationCount, Integer[] expectedArray) { originalArray = originalArray.clone(); Utils.rotat

我最近开始学习Java(我是.net的家伙),我对以下单元测试有问题:

@Test(dataProvider = "rotatedArray")
public void given_array_of_items_rotates_array(Integer[] originalArray, int rotationCount, Integer[] expectedArray) {
    originalArray = originalArray.clone();

    Utils.rotate(originalArray, rotationCount);

    Assert.assertArrayEquals(expectedArray, originalArray);
}

@DataProvider(name = "rotatedArray")
public static Object[][] rotatedArrayProvider() {
    return new Object[][] {
            // array that is not rotated
            {
                    new Integer[] { 1, 2, 3, 4, 5, 6 },
                    0,
                    new Integer[] { 1, 2, 3, 4, 5, 6 }
            },

            // array rotated one place forward
            {
                    new Integer[] { 1, 2, 3, 4, 5, 6 },
                    1,
                    new Integer[] { 6, 1, 2, 3, 4, 5 }
            },

            // array rotated one place backward
            {
                    new Integer[] { 1, 2, 3, 4, 5, 6 },
                    -1,
                    new Integer[] { 2, 3, 4, 5, 6, 1 }
            },

            // array rotated by array.length
            {
                    new Integer[] { 1, 2, 3, 4, 5, 6 },
                    6,
                    new Integer[] { 1, 2, 3, 4, 5, 6 }
            },

            // array rotated by array.length - 1
            {
                    new Integer[] { 1, 2, 3, 4, 5, 6 },
                    5,
                    new Integer[] { 2, 3, 4, 5, 6, 1 }
            },

            // array rotated by some number of places backwards
            {
                    new Integer[] { 1, 2, 3, 4, 5, 6 },
                    -3,
                    new Integer[] { 4, 5, 6, 1, 2, 3 }
            },
    };
}
Utils.rotate
是一个简单的函数,它将作为参数传递的数组旋转给定数量的位置。当我在IntelliJ中使用注释行运行此代码时:

// originalArray = originalArray.clone();
两个
给定的\u数组\u项\u旋转\u数组
测试用例失败,没有任何有意义的消息。当我取消注释克隆阵列的行或减少数据提供程序中的测试用例数时,问题就会消失。此测试是唯一使用
rotatedArray
提供程序的测试。看起来问题在于修改输入参数——我搜索了TestNG文档,但找不到任何线索

编辑: 将试验方法更改为:

@Test(dataProvider = "rotatedArray")
public void given_array_of_items_rotates_array(Integer[] originalArray, int rotationCount, Integer[] expectedArray) {
    for (int i = 0; i < originalArray.length; i++)
            originalArray[i] = 123;
}
@Test(dataProvider=“rotatedArray”)
public void给定\u数组\u项的\u旋转\u数组(整数[]原始数组,整数旋转计数,整数[]预期数组){
for(int i=0;i
有些测试仍然没有通过。控制台中没有输出。 看起来,修改参数比断言更重要

IntelliJ:

当前TestNG(6.9.9)在数组断言方面可能存在一些问题。它应该在下一个版本中修复。
请参见

是否为失败的测试或其他内容引发了AssertionError?请提供控制台输出。