下面的简单测试用例失败并出现异常.
The simple test case below is failing with an exception.
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Invalid use of argument matchers! 3 matchers expected, 2 recorded:
不知道怎么回事
@Test
public void testGetStringTest(){
final long testId = 1;
String dlrBAC = null;
NamedParameterJdbcTemplate jdbcTemplate = mock(NamedParameterJdbcTemplate.class);
when(this.dao.getNamedParameterJdbcTemplate()).thenReturn(jdbcTemplate);
when(jdbcTemplate.queryForObject(anyString(), any(SqlParameterSource.class), String.class
)).thenReturn("Test");
dlrBAC = dao.getStringTest(testId);
assertNotNull(dlrBAC);
}
Mockito 要求您在存根方法调用时仅使用原始值或仅使用匹配器.完整的例外(不是您在这里发布的)肯定可以解释一切.
Mockito requires you to either use only raw values or only matchers when stubbing a method call. The full exception (not posted by you here) surely explains everything.
简单换行:
when(jdbcTemplate.queryForObject(anyString(), any(SqlParameterSource.class), String.class
)).thenReturn("Test");
到
when(jdbcTemplate.queryForObject(anyString(), any(SqlParameterSource.class), eq(String.class)
)).thenReturn("Test");
它应该可以工作.
这篇关于参数匹配器的无效使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
如何检测 32 位 int 上的整数溢出?How can I detect integer overflow on 32 bits int?(如何检测 32 位 int 上的整数溢出?)
return 语句之前的局部变量,这有关系吗?Local variables before return statements, does it matter?(return 语句之前的局部变量,这有关系吗?)
如何将整数转换为整数?How to convert Integer to int?(如何将整数转换为整数?)
如何在给定范围内创建一个随机打乱数字的 intHow do I create an int array with randomly shuffled numbers in a given range(如何在给定范围内创建一个随机打乱数字的 int 数组)
java的行为不一致==Inconsistent behavior on java#39;s ==(java的行为不一致==)
为什么 Java 能够将 0xff000000 存储为 int?Why is Java able to store 0xff000000 as an int?(为什么 Java 能够将 0xff000000 存储为 int?)