📅  最后修改于: 2023-12-03 15:20:36.673000             🧑  作者: Mango
TestNG 是一个用于测试 Java 程序的框架,具有比 JUnit 更丰富的功能和更灵活的测试配置。参数化测试是 TestNG 中一个很强大的特性,允许我们使用不同的参数多次运行相同的测试方法。这种测试方法使得我们能够更全面地验证代码的正确性。
要使用参数化测试,我们需要使用 @DataProvider
注解来提供测试数据,并将其与 @Test
注解一起使用。@DataProvider
标记的方法将返回一个对象数组或二维数组,包含测试数据和期望结果。然后,在使用 @Test
标记的测试方法中,通过 dataProvider
属性将数据提供者与测试方法关联起来。
下面是一个示例:
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class ParameterizedTest {
@DataProvider(name = "testData")
public Object[][] provideData() {
return new Object[][] {
{"TestNG", 6},
{"JUnit", 4},
{"Selenium", 8}
};
}
@Test(dataProvider = "testData")
public void testStringLength(String input, int expectedLength) {
int actualLength = input.length();
assert actualLength == expectedLength;
}
}
在上面的示例中,我们创建了一个数据提供者方法 provideData()
,它返回一个二维数组,包含不同的测试数据和期望的字符串长度。然后,在 testStringLength
方法中,我们使用了这些测试数据来执行多次测试。
要运行参数化测试,可以使用 TestNG 提供的运行器运行测试类。或者,使用构建工具(如 Maven 或 Gradle)配置 TestNG 插件来运行测试。运行结果将会显示每组参数运行的测试结果,并标记出失败或通过的测试。
通过 TestNG 的参数化测试,我们可以更方便地执行多组测试数据,从而提高代码覆盖率和测试效率。这种测试方式使得我们的测试用例更具有可重复性,能够覆盖更多的边界条件和特殊情况。
参考链接: