有没有办法在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));
Run Code Online (Sandbox Code Playgroud)
这完全符合我的要求.每个函数被调用时,它会从列表,如返回一个不同的对象get(1),get(2)等等.
但是我希望简化这个并使其对任何大小的列表更具动态性,以防我有一个大小为100的列表.我尝试过这样的事情:
Mockito.when( /* some function is called */ ).thenReturn(
for(Foo foo : returns) {
return foo;
}
);
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
Mockito.when(service.findFinancialInstrumentById(eq(1L))).thenReturn(
for (int i=0; i<returns.size(); i++) {
returns.get(i);
}
);
Run Code Online (Sandbox Code Playgroud)
但是,这并不工作....我怎么这么枚举内的这个名单thenReturn....我遇到其他的方法来喜欢then或者answer,但我不知道哪一个最适合在这种情况下.