如何使用 Inorder 验证调用顺序然后 return 一个值?

How to use Inorder to verify call sequence and then return a value?

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");

如何制作 return "ducks in a row"

第一次调用添加时 "was added first, then with "第二次添加"?

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

更新:

Mockito 似乎无法处理模拟对象中的状态模拟。正如 Jeff Bowman 所建议的,我不得不实现一个假对象。

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

@版主。请取消赏金,因为它不能在 mockito 中完成。

您无法在使用 InOrder 时指定 return 值。 InOrder 的使用仅限于 mockitos 模拟过程的验证阶段。仅允许在存根阶段指定 return 值。

存根阶段以对被测单元进行的第一次调用结束。之后验证阶段就开始了。

Mockito 似乎无法处理模拟对象中的状态模拟。正如 Jeff Bowman 所建议的,我必须改为实施 fake object