Mockito: InvalidUseOfMatchersException

  异常报错信息:java

 

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 
Invalid use of argument matchers!
4 matchers expected, 3 recorded:
-> at com.yihaodian.wap.service.AddressServiceTest.testInsertGoodReceiverByTokenV2(AddressServiceTest.java:136)
-> at com.yihaodian.wap.service.AddressServiceTest.testInsertGoodReceiverByTokenV2(AddressServiceTest.java:136)
-> at com.yihaodian.wap.service.AddressServiceTest.testInsertGoodReceiverByTokenV2(AddressServiceTest.java:136)
This exception may occur if matchers are combined with raw values:
     //incorrect:
     someMethod(anyObject(), "raw String");
When using matchers, all arguments have to be provided by matchers.
For example:
      //correct:
      someMethod(anyObject(), eq("String by matcher"));
For more info see javadoc for Matchers class.

 

报错的测试代码:ide

  Mockito.when(baseDaoRead.queryForObject(Mockito.anyString(), Mockito.anyMap(), String.class)).thenReturn("123.11");测试

改正确以后的测试代码:(主要是String.class不是使用Matchers传参)spa

  Mockito.when(baseDaoRead.queryForObject("industry.getMaxYestPayIdx", params, String.class)).thenReturn("123.11");code

或者这样也是正确的:blog

  Mockito.when(baseDao.queryForList(Mockito.anyString(), Mockito.anyMap())).thenReturn(list3);字符串

主要差别是对传入的字符串作了Matchers.eq()动做 get

  缘由:使用Matchers不能只针对部分参数,全部参数都应该采用Matchersit

相关文章
相关标签/搜索