Mockito在使用anystring()时工作正常,而不是当使用值设置为方法中的对象时@setup


@InjectMocks

对于包含 JDBC 调用的类。

@Mock 

JDBC 模板

@Mock私有数据访问异常数据访问异常;

工作正常:

when(jdbcTemplate.update(anyString(), anyString(), anyString(), anyString())).thenThrow(dataAccessException);

不起作用:

 when(jdbcTemplate.update("revoke", "1", "1", "JA122")).thenThrow(dataAccessException);

我是测试和Mockito的新手。谁能解释为什么会有这种行为?

假设你正在模拟一个 Spring JDBC JdbcTemplateupdate 方法接收一个 vararg,你用四个字符串调用它。在第二个示例中,您的第二个和第三个参数int文本,因此参数不匹配,因此您的执行与模拟的期望不匹配。只需将它们转换为字符串文字,您应该没问题:

when(jdbcTemplate.update("revoke", "1", "1", "JA122")).
    thenThrow(dataAccessException);`

相关内容

  • 没有找到相关文章

最新更新