【发布时间】:2019-03-12 21:56:52
【问题描述】:
下面是我的自定义 Spring Batch Reader。我必须编写涵盖setPreparedStatementSetter() 和setRowMapper() 方法的junit。无论我尝试什么,我的单元测试都不会涵盖这些方法中的代码。有人可以指点我如何为这种匿名方法编写junit。谢谢。
PS:我知道 junit 并不是为了测试框架特定的实现方法而编写的,但我需要它来覆盖我的代码。
public class MyDataReader extends JdbcCursorItemReader<ABC> {
public MyReader(DataSource dataSource, String beginTime, String endTime) {
setSql(QUERY);
setPreparedStatementSetter(new PreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps) throws SQLException {
// Set parameters on the SQL query
ps.setLong(1, Long.parseLong(beginTime.trim()));
ps.setLong(2, Long.parseLong(endTime.trim()));
}
});
setDataSource(dataSource);
setRowMapper((ResultSet rs, int rowNum) -> {
ABC abc = new ABC();
abc.setDateTime(getLongOrNull("DT", rs));
abc.setStmt(getBooleanOrNull("SP", rs));
return abc;
});
}
}
【问题讨论】:
标签: java unit-testing junit spring-batch spring-test