【发布时间】:2017-06-03 14:17:29
【问题描述】:
我有 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) 或 A.setB(new B())
等等。
但我不能一次完成吗? 任何帮助将不胜感激。
【问题讨论】:
-
RETURNS_DEEP_STUBS!见static.javadoc.io/org.mockito/mockito-core/2.6.3/org/mockito/…
标签: java methods junit mocking mockito