gpt4 book ai didi

java - Mockito 在测试方法之外 stub

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:08:39 25 4
gpt4 key购买 nike

我在测试方法之外还有下面的方法

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!

当您在测试方法之外 stub 时,看起来 mockito 不高兴。不支持吗?

编辑:我可以通过在 @Test 方法中进行 stub 来使其工作,但我想在 @Test 中重用 stub 。

最佳答案

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

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

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

如果是,则需要重写如下:

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

关于java - Mockito 在测试方法之外 stub ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19798433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com