首页 > 解决方案 > 如何在 Mockito 中使用带有 doReturn 的匹配器

问题描述

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

Sender sender = Mockito.spy(new Sender());
Mockito.doReturn(response)
    .when(sender)
    .callRestClient(
        Mockito.anyString(),
        Mockito.anyString(),
        Mockito.anyString(),
        Mockito.anyString());

但是当测试使用 callRestClient 的实际值运行时,该方法实际上被调用(我不希望这样)。在这种情况下,Sender 是一个 Spy 对象

标签: javamockito

解决方案


请使用创建 senderMock 并将语句更改为以下

@MockBean Sender senderMock

Mockito.when(senderMock.callRestClient(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString())).thenReturn(response);

推荐阅读