我打算做一個分析大的ArrayList的方法。我想在JUnit中編寫測試方法。 ArrayList的大小可能高達數百萬。我認爲連接數據庫並從那裏獲取數據進行分析並不是一個好主意,因爲如果與數據庫交談,測試不是單元測試。那麼我應該如何在這種情況下正確行事?或者一般的單元測試分析了多大的數據?如何通過Mockito模擬大ArrayList?
例子:
public void analyze(List<Double> list) {
double n1, n2, n3;
for (int i = 3; i < list.size(); i += 3) {
n1 = list.get(i - 3);
n2 = list.get(i - 2);
n3 = list.get(i - 1);
if (/* Some condition here using n1, n2, n3*/) {
list.remove(i);
}
}
}
@Test
public void analyzeTest() {
List<Double> list = new ArrayList<Double>();
// To add 1M data here.
analyze(list);
assertEquals(list, expected);
}
請當您投反對票時發表評論。 – Vanguard
爲什麼你需要一個模擬?在測試設置期間創建一個普通的'ArrayList'並且手動填充一百萬個條目應該沒問題。 –
@DanielPryden我只是想將我的單元測試與數據庫隔離開來。我只是想確保在這種情況下連接或不連接數據庫是否正確。 – Vanguard