[英]How to reset variable values to null on completion of a TestNG Test Class
我创建了一些自动化测试,以使用TestNG测试API。
public class EndToEndTest {
private ResponseParser response;
private static String sessionId;
private static float cardCharge;
@BeforeClass
public void setUp() {
baseURI = getUri();
response = new ResponseParser();
@Test
@Parameters({"login", "username", "password"})
public void testOne(){
//send some test data into API using specific test data parameters
sessionId = response.getSessionId();
cardCharge = response.getCardCharge();
//assertion etc...
}
@Test
public void testTwo()
Request req = new Request.RequestBuider()
.withSession(sessionId)
.withCardCharge(cardCharge)
.with....etc...
}
这个测试是一个模板,我有10个左右的单独testng xml文件提供了单独的测试数据-实质上是10个测试。 我正在使用1个testng套件xml文件运行10个testng xml文件。
当一个“测试”完成时,我希望将变量-“ sessionId”等...重置为null。 使用我运行它们的方式,变量值在@Tests之间保持不变(理想),但在类级别上仍然存在,大概是因为我使用套件运行的方式使它们保留在作用域中,不符合GC的条件。
是否有比简单地将每个字段重置为空(例如在@AfterClass方法中)更优雅/更可靠的解决方案?
@AfterClass
public void tearDown(){
sessionId = null;
.....
}
是的,还有另一种方法可以执行此操作。 您可以覆盖@Test类并处理其行为,其中您可以为每个使用的变量设置默认值。 请参考; http://www.javatpoint.com/custom-annotation
您是否看过@BeforeTest
和@AfterTest
批注? 参见[TestNg文档] [1] http://testng.org/doc/documentation-main.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.