我已经设法存根update():
@Test
public void updateStubbed() {
UpdatableRecordTest updatableRecordTest = spy(new UpdatableRecordTest());
doReturn(1).when(updatableRecordTest).update();
}
但是,当我尝试存根store()时:
@Test
public void storeStubbed() {
UpdatableRecordTest updatableRecordTest = spy(new UpdatableRecordTest());
doReturn(1).when(updatableRecordTest).store();
}
我得到了错误:
org.mockito.exceptions.misusing.WrongTypeOfReturnValue:
整数 不能由fieldsRow()返回fieldsRow()应该返回Row
如果不确定为什么会遇到错误,请继续阅读。由于上述语法的性质,可能会由于以下原因而出现问题:
- 此错误可能发生在错误编写的多线程测试中。请参考Mockito常见问题的并发限制 测试。
- 使用when(spy.foo())。then()语法对间谍进行打桩。对间谍进行存根比较安全-
- 具有doReturn | Throw()系列方法。 javadoc中有关Mockito.spy()方法的更多信息。
如何对 store()方法存根?
答案 0 :(得分:0)
您不能使用Mockito模拟store()
方法,因为它是final
方法,并且Mockito不提供模拟最终方法的支持。您可以做的是:
不幸的是,我没有更好的答案。