我有一个Converter类,用于将一个对象转换为另一个对象。我有多个if语句,检查一个值是否为null。现在,当单元测试时,这当然意味着,我需要测试每个if条件,尽管它非常简单。这里有一个简化的例子:
public OutputData convert(InputData input){
final OutputData output = new OutputData();
output.setName(input.getName());
output.setCity(input.getCity());
if(isNotEmpty(input.getObjects())){
output.setMainObject(input.getObjects().get(0));
}
if(input.getType() != null){
output.setType(input.getType());
}
if(input.getID() != null){
output.setId(input.getID());
}
return output;
}
现在请记住,在我的真实项目中还有4到5个。那么,有什么方法可以避免它或确保它更容易测试呢?
您可以使用Optional,但正如@Seelenvirtualose所说,除非您避免覆盖某些默认值,否则您的null检查将阻止设置一个已经为null的值。
https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html
http://www.oracle.com/technetwork/articles/java/java8-optional-2175753.html