模拟对象没有更新值



我正在这样设置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。

相关内容

  • 没有找到相关文章

最新更新