有没有办法在Mockito的thenReturn函数中枚举列表中的项,以便我可以返回列表中的每个项。到目前为止我已经做了这个:
List<Foo> returns = new ArrayList<Foo>();
//populate returns list
Mockito.when( /* some function is called */ ).thenReturn(returns.get(0), returns.get(1), returns.get(2), returns.get(3));
这正是我想要的效果。每次调用该函数,它都会返回列表中不同的对象,例如get(1)
、get(2)
等。
但是我希望将其简化,使其更适用于任何大小的列表,例如我有一个大小为100的列表。我尝试了以下代码:
Mockito.when( /* some function is called */ ).thenReturn(
for(Foo foo : returns) {
return foo;
}
);
我也尝试了这个:
Mockito.when(service.findFinancialInstrumentById(eq(1L))).thenReturn(
for (int i=0; i<returns.size(); i++) {
returns.get(i);
}
);
但是这并不起作用...那么我该如何在 thenReturn
中枚举此列表....我还遇到了其他方法,比如 then
或 answer
,但我不确定哪个在这种情况下最有效。