在使用dataObject
时,我们是否需要在数组对象中遵循相同的序列例如:代码
@DataProvider(name = "test1")
public static Object[][] primeNumbers() {
return new Object[][] {{2, true}, {6, false}, {19, true}, {22, false}, {23, true}};
}
// This test will run 4 times since we have 5 parameters defined
@Test(dataProvider = "test1")
public void testPrimeNumberChecker(Integer inputNumber, Boolean expectedResult) {
System.out.println(inputNumber + " " + expectedResult);
Assert.assertEquals(expectedResult,
primeNumberChecker.validate(inputNumber));
}
使用DataProvider
Integer
和Boolean
,testPrimeNumberChecker
使用相同的序列。如果需要,我是否可以在任何功能中仅使用Boolean
记录。
答案 0 :(得分:1)
@Test
方法的输入参数的类型,数字和顺序/序列必须与@DataProvider
方法传递的相同。
在使用
时,我们是否需要在数组对象中遵循相同的顺序dataObject
这里我假设使用你的意思是在@Test
方法中传递参数。 答案是 - 是我们需要在使用dataObject
时遵循数组对象中的相同序列。
示例强>:
@Test(dataProvider = "test1")
public void testPrimeNumberChecker(Boolean expectedResult, Integer inputNumber) {
// your test method stuff
}
如果你不这样做,你将得到以下异常:
java.lang.IllegalArgumentException: argument type mismatch
如果需要,我可以在任何函数中仅使用布尔记录。
这里我也假设通过使用来表示在@Test
方法中传递参数。答案是 - 否,参数数量很重要。
示例强>:
@Test(dataProvider = "test1")
public void testPrimeNumberChecker(Boolean expectedResult) {
// your test method stuff
}
因此,如果您的@Test
方法输入参数的数量越来越少,那么@DataProvider
方法会通过,您将获得以下异常:
org.testng.TestNGException:
The data provider is trying to pass 2 parameters but the method yourpackage.YourTestClass#testPrimeNumberChecker takes 1