如何使用 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。
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。