为什么我在这里得到InvalidUseOfMatchersException



我在测试用例中得到以下错误:

junit.framework.AssertionFailedError: Exception occured :
        org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 
        Invalid use of argument matchers!
        2 matchers expected, 1 recorded:

这是我的代码:

Mockito.when(mockHelloPeristenceImpl.retrieveHellorequest(Mockito.anyLong()))
              .thenReturn(Mockito.any(Hellorequest.class));

我尝试了互联网上建议的所有选项来解决这个问题,没有任何效果。怎么了?

您不能以您正在做的方式返回Matcher。您必须指定要返回的实际对象。或者像这样做:

Mockito.when(mockHelloPeristenceImpl.retrieveHellorequest(Mockito.anyLong()))
       .thenReturn(Mockito.mock(Hellorequest.class));

或者,给它一个回答策略,例如

Mockito.when(mockHelloPeristenceImpl.retrieveHellorequest(Mockito.anyLong()))
       .then(Mockito.RETURNS_MOCKS);

作为题外话,你的代码可以更短,通过使用:
import static org.mockito.Mockito.*;

那么您的测试语句将是:

when(mockHelloPeristenceImpl.retrieveHellorequest(anyLong()))
          .then(RETURNS_MOCKS);

相关内容

  • 没有找到相关文章

最新更新