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
的使用仅限于嘲笑模拟过程的验证阶段。仅在存根阶段才允许指定返回值。
存根阶段以对被测单元的第一次调用结束。之后,验证阶段将启动。