Java mockito测试错误参数匹配器的使用无效
我一直在为一个调用Java mockito测试错误参数匹配器的使用无效,java,unit-testing,junit,mockito,Java,Unit Testing,Junit,Mockito,我一直在为一个调用jdbcTemplate.query并返回一些数据的方法编写单元测试。它似乎不工作并抛出异常 这是密码 @Test public void NewDealDaoGetClientOwnershipValuesTest() { List<OptionView> optionViews = new ArrayList<OptionView>(); optionViews.add(new OptionView("
jdbcTemplate.query
并返回一些数据的方法编写单元测试。它似乎不工作并抛出异常
这是密码
@Test
public void NewDealDaoGetClientOwnershipValuesTest() {
List<OptionView> optionViews = new ArrayList<OptionView>();
optionViews.add(new OptionView("one", "two"));
when(jdbcTemplate.query("<some sql query>", newDealDaoImpl.getResultSetExtractor(Mockito.anyString(), Mockito.anyString(), Mockito.anyString()))).thenReturn(optionViews);
assertEquals(newDealDaoImpl.getClientOwnershipValues(), optionViews);
}
仅供参考,方法
newDealDaoImpl.GetResultSetTextRactor
包含3个参数。问题在于您使用的是参数匹配器:
Mockito.anyString()
在非Mockito管理的对象上(mock、spy等)
尝试将空字符串或其他随机值传递给您的:
newDealDaoImpl.getResultSetExtractor(...)
修复了代码-
Mockito.when(jdbcTemplate.query(Mockito.anyString(),(ResultSetExtractor)Mockito.anyObject())。然后返回(optionview)代码>尝试使用任何(ResultSetTextRactor.class)。anyObject()应该是最后的选择。干杯
newDealDaoImpl.getResultSetExtractor(...)