如何让mockito从列表中为for循环的每次迭代返回值

Aug*_*ias 3 java mockito

假设这个 for 循环:

for (int i = 0; i < 10; i++) {
    long numFound = barObj.getNumFound();
    total += numFound;
}
Run Code Online (Sandbox Code Playgroud)

我想getNumFound()使用 mockito 为循环中的每次迭代从列表中生成返回值。我怎么做?

Daw*_*ica 5

我会写以下内容:

Mockito.doAnswer(AdditionalAnswers.returnsElementsOf(myList))
       .when(myMock).myMethod(... whatever ...);
Run Code Online (Sandbox Code Playgroud)

这使用这里Answer描述的来一个接一个地返回列表的元素。