java For循环和太多if-else如何测试
我有一个这样的代码
List insert;
List update;
List delete
for(SomeObject someObj : someObjects){
if(isNew){
insert.add()
}
else if(isUpdate){
update.add();
}
if(isDelete){
delete.add()
}
}
//call update insert delete functions
问题是这段代码不稳定,因为update insert delete都是void方法。 我的问题是,我是否应该考虑循环遍历三次,然后获取列表来测试是否过滤每个类型的结果的逻辑都在工作?成本没有我预期的那么高<;列表中有100个元素
# 1 楼答案
你可以查一下
# 2 楼答案
这里的关键是能够控制依赖项并访问该方法所作用的状态
以下是一个例子,说明:
我能弄清楚
doSomethingComplicatedWithListsInAForLoop
操作了什么的唯一原因是因为我能控制它的依赖关系,也就是说,在这个例子中,SomeDao
您可能会发现测试方法很困难,因为它会调用无法注入的状态