gpt4 book ai didi

java - 与 doReturn 方法一起进行深度 stub

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

我正在尝试通过 doReturn 方法使用 Mockito 深度 stub 功能。

当我在深度 stub 示例中使用 when 方法时,它工作正常:

Foo mock = mock(Foo.class, RETURNS_DEEP_STUBS);
when(mock.getBar().getName()).thenReturn("deep");

但是当我尝试使用 doReturn 做同样的事情时,我得到了一个 WrongTypeOfReturnValue:

doReturn("deep").when(mock).getBar().getName();

我也尝试过这些方法,但后来我得到一个 UnfinishedStubbingException:

doReturn("deep").when(mock.getBar()).getName();
doReturn("deep").when(mock.getBar().getName());

如何通过 doReturn 方法使用深度 stub 功能?

(我知道包括 Mockito 开发人员在内的一些人不鼓励使用深度 stub 。我不确定我是否同意他们对此的立场。让我们将讨论排除在外问题。)

最佳答案

当您在 then when 方法中调用深层 stub 时,Mockito 似乎感到困惑。我能够通过分别调用 mock.getBar() 来解决这个问题:

    Foo mock = mock(Foo.class, RETURNS_DEEP_STUBS);
Bar bar = mock.getBar();
doReturn("deep").when(bar).getName();

关于java - 与 doReturn 方法一起进行深度 stub ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30885194/

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