我正在这样设置int
值:
when(status.getCurrentSeq()).thenReturn(0);
当测试用例运行时,代码逻辑设置CurrentSeq的值为1。
status.setCurrentSeq(1)
但currentSeq
在模拟对象中仍然是0
。再次得到status.getCurrentSeq()
总是返回0
。
不能在模拟对象上设置值。它仍然会返回它被嘲笑返回的东西。在本例中为0.
如果你不想让这个方法返回0,为什么还要模拟它返回0呢?也许完全删除when(status.getCurrentSeq()).thenReturn(0);
将解决您的问题。
编辑:也许你需要的是连续通话记录?
when(status.getCurrentSeq())
.thenReturn(0)
.thenReturn(1);
也可以这样缩写:
when(status.getCurrentSeq())
.thenReturn(0,1);
此行为可通过以下命令验证:
assertEquals(0, status.getCurrentSeq());
assertEquals(1, status.getCurrentSeq());
assertEquals(1, status.getCurrentSeq());
第一次调用模拟方法返回0,每次连续调用返回1。