Java 避免多个NOTNULL语句
我有一个Converter类,在这里我将一个对象转换成另一个对象。这里有多个if语句,检查一个值是否为null。现在当单元测试这当然意味着,我需要测试每一个if条件,即使它非常简单。下面是一个简化的示例:Java 避免多个NOTNULL语句,java,junit,refactoring,Java,Junit,Refactoring,我有一个Converter类,在这里我将一个对象转换成另一个对象。这里有多个if语句,检查一个值是否为null。现在当单元测试这当然意味着,我需要测试每一个if条件,即使它非常简单。下面是一个简化的示例: public OutputData convert(InputData input){ final OutputData output = new OutputData(); output.setName(input.getName()); output.setCit
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个。那么,如何避免或确保它更易于测试呢?您可以使用可选选项,但正如@Seelenvirtuose所说,除非您避免覆盖某些默认值,否则空检查会阻止设置已为空的值
您可以使用可选值,但正如@Seelenvirtuose所说,除非您避免覆盖某个默认值,否则空检查会阻止设置一个已经为空的值
是否有理由允许在
InputData
中使用空值?接下来:如果字段没有设置为空值,而不是设置为空值,会发生什么情况?问题是:为什么要检查空值?我的意思是,你可以简单地删除空检查代码。即使某个值是null
,这个值也会简单地设置在一个已经null
的值上。我根本不确定你问的是什么。您是否在询问如何修改上述代码以避免大量的!=空
检查?或者如何编写测试上述代码的新代码?如果是后者,问题是什么?@Seelenvirtuose可以在构造函数中将它们设置为默认值。这就是为什么我问如果他只是将它们设置为null会发生什么(见上文)。你为什么要在InputData
中首先允许null呢?接着问:如果字段根本没有设置,而不是设置为null,会发生什么?问题是:为什么要检查null?我的意思是,你可以简单地删除空检查代码。即使某个值是null
,这个值也会简单地设置在一个已经null
的值上。我根本不确定你问的是什么。您是否在询问如何修改上述代码以避免大量的!=空
检查?或者如何编写测试上述代码的新代码?如果是后者,问题是什么?@Seelenvirtuose可以在构造函数中将它们设置为默认值。这就是为什么我问如果他只是将它们设置为null会发生什么(见上文)。