测试方法外的莫皮托存根



我在测试方法之外有以下方法

private DynamicBuild getSkippedBuild() {
    DynamicBuild build = mock(DynamicBuild.class);
    when(build.isSkipped()).thenReturn(true);
    return build;
}

但是当我调用此方法时,出现以下错误

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方法进行存根来使其工作,但我想在@Test s中重复使用存根。

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

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

when(...).thenReturn(getSkippedBuild());

如果是这样,您需要按如下方式重写它:

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

相关内容

  • 没有找到相关文章

最新更新