繁体   English   中英

如何在完成TestNG测试类后将变量值重置为null

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM