我打算做一个分析大的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