Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Mockito中将Matchers与doReturn一起使用_Java_Mockito - Fatal编程技术网

Java 如何在Mockito中将Matchers与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

我想使用doReturn不调用实际的方法,而只使用匹配器返回一个值,我完成了以下代码段:

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
注释