有没有办法清除Java中对象的所有字段



我正在测试一个具有多个字段的对象。每次am设置不同的属性并测试对象。

 Processor processor =new Processor();
 TradeData tradeData = new TradeData();
 //case 1
 tradeData.setIndex("1");
 tradeData.setName("abc");
 processor.process(tradeData);
 Assert.assertEquals("def",tradeData.getCategory());
 //Case 2
 tradeData.setCity("1");
 tradeData.setSystem("abc");
 processor.process(tradeData);
 Assert.assertEquals("fgh",tradeData.getCategory());

就像明智的AM测试多种情况。是否有一种方法可以在每种情况下清除TradeData的属性。是否有诸如obj.clear()之类的方法或其他方法。我不想在每种情况之前声明new()对象。

通常是在考虑在测试中清除对象状态时的代码气味。

您可能应该使用@Before编写测试来设置每个测试。

Processor processor;
TradeData tradeData;
@Before 
public void initialize() {
  processor = new Processor();
  tradeData = new TradeData();
}
@Test
public void case1() {
  tradeData.setIndex("1");
  tradeData.setName("abc");
  processor.process(tradeData);
  Assert.assertEquals("def",tradeData.getCategory());
}
@Test
public void case2() {
  tradeData.setCity("1");
  tradeData.setSystem("abc");
  processor.process(tradeData);
  Assert.assertEquals("fgh",tradeData.getCategory());
}

不,没有这样的东西。

您可以在测试类中创建一个辅助方法,即:

public void clearObject(TradeData tradeData)
{
   tradeData.setCity(null);
   tradeData.setSystem(null);
   ...
}

最新更新