Java 如何在Mockito中将Matchers与doReturn一起使用
我想使用doReturn不调用实际的方法,而只使用匹配器返回一个值,我完成了以下代码段:Java 如何在Mockito中将Matchers与doReturn一起使用,java,mockito,Java,Mockito,我想使用doReturn不调用实际的方法,而只使用匹配器返回一个值,我完成了以下代码段: Sender sender = Mockito.spy(new Sender()); Mockito.doReturn(response) .when(sender) .callRestClient( Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), M
Sender sender = Mockito.spy(new Sender());
Mockito.doReturn(response)
.when(sender)
.callRestClient(
Mockito.anyString(),
Mockito.anyString(),
Mockito.anyString(),
Mockito.anyString());
但是,当测试使用callRestClient的实际值运行时,实际上调用了该方法(我预计不会)。
在这种情况下,发件人是间谍对象请使用创建senderMock,并将语句更改为以下内容
@MockBean Sender senderMock
Mockito.when(senderMock.callRestClient(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString())).thenReturn(response);
调用哪个方法?callRestClient(..)是发送方模拟对象还是实际对象上的间谍?嗨,Kaushal,它是间谍代码片段,看起来不错,尝试时工作正常。检查callRestClient是否有任何其他过载。当代码调用另一个重载时,您可能正在模拟一个重载。我需要在真实对象中设置一个间谍,如果我按照您的建议执行,将调用该方法,这正是我想要避免的。谢谢。不要使用
@MockBean
,因为这意味着SpringRunner。问题是关于莫基托的。Mockito使用@Mock
注释