Java TestNG参数化测试-测试之间意外的依赖关系
我最近开始学习Java(我是.net的家伙),我对以下单元测试有问题: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
@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?请提供控制台输出。