java - 有没有办法清除JAVA中对象的所有字段?

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

 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());

同样明智的是对多个案例进行测试。有没有办法在每个案例之前清除 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());
}

https://stackoverflow.com/questions/30210928/

相关文章:

unity3d - 团结 |查找具有指定父对象的子游戏对象

spring-mongo - Spring Mongo 从 json 字符串转换为文档

r - 如何在函数 rowsum 中使用 'group' 参数

php - 第 2 行超出范围 (2 - 1) laravel-excel

ruby-on-rails - 使用 Rails 将带连字符的单词的两个部分都大写

r - 加载 Data.Table 后遮盖的润滑对象

google-api - YouTube API 直播

git - 我如何将 openshift git 存储库连接到 bitbucket

opengl-es - 使用具有多个颜色纹理附件的 FrameBufferObject

c - 如何用一行代码设置和清除不同的位(C)