【发布时间】:2020-08-20 19:36:54
【问题描述】:
我在 Spring Boot (v. 2.2.1.RELEASE) 应用程序的 Java 类中有以下代码:
@Inject
private JdbcTemplate jdbcTemplate;
@Inject
private MyRowCallbackHandler myRowCallbackHandler;
public void myMethod() {
jdbcTemplate.query(MY_QUERY, myRowCallbackHandler);
}
JDBC 模板对象是 org.springframework.jdbc.core.JdbcTemplate 的实现,处理程序是 org.springframework.jdbc.core.RowCallbackHandler 的实现。
使用 JUnit 版本 4 和 Mockito,我是否可以通过查询方法模拟从数据库中检索一行或多行,从而调用处理程序的 processRow() 方法?
感谢您的帮助。
【问题讨论】:
-
你有没有想过这个问题?我遇到了同样的问题。
-
@ChantellOsejo:现在已经有一段时间了,但我想我没有。我所能测试的只是 RowCallbackHandler 本身的工作原理。
-
我最终确实想出了一些东西,将其作为答案发布在这里,也许对其他人有帮助(即使它不是与您尝试做的事情的 1:1 映射,我相信我的答案可以稍微调整一下以完成您在这里尝试做的事情)。
标签: java spring spring-boot junit mockito