工厂允许你动态的创建测试。例如,假设你需要创建一个测试方法,并用它来多次访问一个web页面,而且每次都带有不同的参数:
public class TestWebServer {
}
testng.xml:
<test name="T1">
</test>
<test name="T2">
</test>
<test name="T3">
</test>
参数一旦多起来,就难以管理了,所以应该使用工厂来做:
public class WebTestFactory {
}
新的测试类如下:
public class WebTest {
}
你的testng.xml 只需要引用包含工厂方法的类,而测试实例自己会在运行时创建:
<class name="WebTestFactory" />
工厂方法可以接受诸如 @Test 和 @Before/After 所标记的参数,并且会返回 Object[]。这些返回的对象可以是任何类(不一定是跟工厂方法相同的类),并且他们甚至都不需要TestNG注解(在例子中会被TestNG忽略掉)