java – Mockito在测试方法之外的存根

前端之家收集整理的这篇文章主要介绍了java – Mockito在测试方法之外的存根前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在测试方法之外有以下方法 @H_301_2@private DynamicBuild getSkippedBuild() { DynamicBuild build = mock(DynamicBuild.class); when(build.isSkipped()).thenReturn(true); return build; }

但是当我调用这个方法时,我得到以下错误

@H_301_2@org.mockito.exceptions.misusing.UnfinishedStubbingException: Unfinished stubbing detected here: -> at LINE BEING CALLED FROM E.g. thenReturn() may be missing. Examples of correct stubbing: when(mock.isOk()).thenReturn(true); when(mock.isOk()).thenThrow(exception); doThrow(exception).when(mock).someVoidMethod(); Hints: 1. missing thenReturn() 2. you are trying to stub a final method,you naughty developer!

当你在测试方法之外存在时,看起来mockito不高兴.这不受支持吗?

编辑:我可以通过在@Test方法中进行存根来实现这一点,但我想重用@Tests中的存根.

解决方法@H_404_14@
如果isSkipped()不是最终方法,则此问题可能表示您尝试在另一个方法的存根正在进行时存根方法.它不受支持,因为Mockito依赖于其存根API中的方法调用顺序(when()等).

我想你的测试方法中有这样的东西:

@H_301_2@when(...).thenReturn(getSkippedBuild());

如果是这样,您需要重写如下:

@H_301_2@DynamicBuild build = getSkippedBuild(); when(...).thenReturn(build);

猜你在找的Java相关文章