Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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测试错误参数匹配器的使用无效_Java_Unit Testing_Junit_Mockito - Fatal编程技术网

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(...)