我正在测试具有多个字段的对象。每次设置不同的属性并测试对象。
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/