Mockito文档包含this example

//create an inOrder verifier for a single mock
 InOrder inOrder = inOrder(singleMock);

 //following will make sure that add is first called with "was added first, then with "was added second"
 inOrder.verify(singleMock).add("was added first");
 inOrder.verify(singleMock).add("was added second");

如何使其返回“连续鸭子”

什么时候先用“先添加,然后再添加第二”来调用add?

(假设出于示例目的,列表返回一个字符串)。

更新:

看来Mockito无法处理模拟对象中的状态模拟。正如杰夫·鲍曼(Jeff Bowman)所建议的,我不得不改为实现一个假对象。

我希望Mockito将得到增强,以允许指定状态。毕竟,当编译器生成程序集时,Yacc会根据我们的语言规则创建状态机。

@主持人。请取消赏金,因为无法通过模仿完成。

最佳答案

使用InOrder时,您无法指定返回值。 InOrder的使用仅限于嘲笑模拟过程的验证阶段。仅在存根阶段才允许指定返回值。

存根阶段以对被测单元的第一次调用结束。之后,验证阶段将启动。

08-26 19:17