TestNG是一个Java语言的测试框架,由Cédric Beust受到JUnit和NUnit(英语:NUnit)的启发而创建。TestNG的设计目标是,覆盖更广泛的测试类别范围:单元测试、功能测试、端到端测试、集成测试等,并且功能更强大、更易于使用。
TestNG的主要功能包括:
TestNG中的数据提供者是测试类中的一个方法,该类为依赖测试方法提供了一个不同实际值的数组。
例如:
/** * 本方法可为任何测试方法提供数据,只要声明测试方法的数据提供者名为 * “provider1”即可。 */ @DataProvider( name = "provider1" ) public Object createData1() { Object objects = new Object; objects = new Object { "Cedric", 36 }; objects = new Object { "Anne", 37 }; return objects; } /** * 本测试方法声明其数据应由名为“provider1”的数据提供者提供。 */ @Test( dataProvider = "provider1" ) public void verifyData1( String s, Integer i ) { System.out.println( s + ' ' + i ); } /** * 本数据提供者返回一个参数数组的迭代器。 */ @DataProvider( name = "provider2" ) public Iterator<Object> createData() { return new MyIterator( ... ); } /** * 本数据提供者带有一个 java.lang.reflect.Method 类型的参数。如果多个测试方 * 法使用同一个提供者,而且你又希望它能根据不同的测试方法返回不同的值,本方 * 法就非常有用。 */ @DataProvider( name = "provider3" ) public Object createData( Method m ) { System.out.println( m.getName() ); return new Object { new Object { "Cedric" } }; }