我有四个让我们说A,B,C,D的类,每个类都从另一个调用方法。
现在我已经模拟了类A,并且想模拟使用嘲笑的方法
A a = Mockito.mock(A.class);
并希望在递归方法调用上获取“ foo”
a.getB().getC().getD() 应该回来 "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:
org.mockito.exceptions.misusing.UnfinishedStubbingException:
我知道我可以创建B,C和D的对象,甚至可以编写类似
B b =模拟(B.class)或A.setB(新B())
等等。
但是我不能一次完成吗?任何帮助,将不胜感激。
添加 RETURNS_DEEP_STUBS可以 达到目的:
A a = Mockito.mock(A.class, Mockito.RETURNS_DEEP_STUBS);