我正在尝试使用doReturn方法的Mockito深度存根功能.
当我在深层存根示例中使用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方法中使用深度存根功能?
(我知道包括Mockito开发人员在内的一些人不鼓励使用深层存根.我不确定我是否同意他们对此的立场.让我们继续讨论这个问题.)
解决方法:
当你在方法中调用你的深存根时,Mockito似乎感到困惑.我能够通过分别调用mock.getBar()来解决它:
Foo mock = mock(Foo.class, RETURNS_DEEP_STUBS);
Bar bar = mock.getBar();
doReturn("deep").when(bar).getName();
标签:java,mockito
来源: https://codeday.me/bug/20190519/1137306.html