我正在尝试对其中具有循环的方法进行单元测试。
基本上,该方法如下所示:
public List<Discount> methodName(Request request){
for (Discount discountIteration: request.getList()) {
applyDiscount(service1.getCode(discountIteration));
}
...
}
因此,我不知道如何模拟
service1.getCode(discountIteration)
。我应该对
when(...).thenReturn(...);
的每个位置执行一个request.getList()
(这是一个custome对象的列表)。还是有什么办法可以动态地做到这一点?
编辑:我试图模拟循环内的
method
,而不是List
最佳答案
您可以使用any
参数匹配器。
when(service1.getCode(any(DiscountIteration.class)).thenReturn(valueYouWantToReturn);
请记住,列表中的每个条目的
valueYouWantToReturn
都相同