gpt4 book ai didi

java - 使用 mockito 模拟嵌套方法调用

转载 作者:IT老高 更新时间:2023-10-28 20:25:48 32 4
gpt4 key购买 nike

我有 4 个类,让我们说 A、B、C、D,每个类都调用另一个类的方法。

现在我已经模拟了 A 类,并且想使用 mockito 模拟一个方法

A a = Mockito.mock(A.class);

并希望在递归方法调用中获得“foo”,例如

a.getB().getC().getD() 应该返回 "foo"

我试过了

when(a.getB().getC().getD()).thenReturn("foo");

但得到了 nullPointerException

然后我尝试了

doReturn("foo").when(a.getB().getC().getD());

然后我得到 org.mockito.exceptions.misusing.UnfinishedStubbingException:

我知道我可以创建 B、C 和 D 的对象,甚至可以编写类似的东西

B b = mock(B.class) or A.setB(new B())

等等。

但我不能一次完成吗?任何帮助将不胜感激。

最佳答案

添加 RETURNS_DEEP_STUBS 成功了:

A a = Mockito.mock(A.class, Mockito.RETURNS_DEEP_STUBS);

关于java - 使用 mockito 模拟嵌套方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41732361/

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