如果是关于可读性,我就有了将测试数据与测试逻辑分离的概念。代码示例:
// declare data
DataType [] dataToTest = new DataType[] {
defaultStock,
defaultWholesale,
defaultRetail,
defaultDelivery
}
// define logic
boolean checkIfAnyNegative(DataType [] data) {
boolean negativeValue = false;
int i = 0;
while (!negativeValue && i < data.length) {
negativeValue = data[i++] < 0;
}
return negativeValue;
}
该代码看起来更加冗长和不言自明。您甚至可以在方法调用中创建一个数组,如下所示:
checkIfAnyNegative(new DataType[] {
defaultStock,
defaultWholesale,
defaultRetail,
defaultDelivery
});
它比“比较字符串”更具可读性,并且还具有短路的性能优势(以数组分配和方法调用为代价)。
编辑: 使用varargs参数可以简单地实现更高的可读性:
方法签名为:
boolean checkIfAnyNegative(DataType ... data)
呼叫看起来像这样:
checkIfAnyNegative( defaultStock, defaultWholesale, defaultRetail, defaultDelivery );