如果是關于可讀性,我就有了將測試數據與測試邏輯分離的概念。代碼示例:
// 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 );