如何在 spring JdbcTemplate 中模拟数据源
How to Mock Datasource in spring JdbcTemplate
请帮我模拟下面的代码。无法模拟调用 JdbcTemplate 对象的 getDataSource()。
@Override
public List<AttributeThresholdRange> getThresholdsRangeForXHS(QueryThresholdsRequest queryThresholdsRequest) {
ArrayOfString attributeGroupIds = queryThresholdsRequest.getAttributeGroupIds();
Map<String, Object> queryParams = new HashMap<>();
queryParams.put("groupids", attributeGroupIds.getStrings());
return new NamedParameterJdbcTemplate(admDatabaseConnector.getJdbcTemplate().getDataSource())
.query(DBQueryConstants.ADM_QUERY_GET_THRESHOLDS_RANGE_FOR_XHS,
queryParams,
new ResultSetExtractor<List<AttributeThresholdRange>>() {
@Override
public List<AttributeThresholdRange> extractData(ResultSet resultSet) throws SQLException,DataAccessException {
return null;
}
});
}
您使用的 Mock 框架是什么?
如果您使用 Mockito,只需模拟 jdbcTemplate
并将此方法放在 when()
子句中。
when(admDatabaseConnector.getJdbcTemplate().getDataSource())
.query(anyObject(), anyObject(), anyObject())).thenReturn("Your return queryobject");
您必须在 Mock 中声明 admDatabaseConnector
。
请帮我模拟下面的代码。无法模拟调用 JdbcTemplate 对象的 getDataSource()。
@Override
public List<AttributeThresholdRange> getThresholdsRangeForXHS(QueryThresholdsRequest queryThresholdsRequest) {
ArrayOfString attributeGroupIds = queryThresholdsRequest.getAttributeGroupIds();
Map<String, Object> queryParams = new HashMap<>();
queryParams.put("groupids", attributeGroupIds.getStrings());
return new NamedParameterJdbcTemplate(admDatabaseConnector.getJdbcTemplate().getDataSource())
.query(DBQueryConstants.ADM_QUERY_GET_THRESHOLDS_RANGE_FOR_XHS,
queryParams,
new ResultSetExtractor<List<AttributeThresholdRange>>() {
@Override
public List<AttributeThresholdRange> extractData(ResultSet resultSet) throws SQLException,DataAccessException {
return null;
}
});
}
您使用的 Mock 框架是什么?
如果您使用 Mockito,只需模拟 jdbcTemplate
并将此方法放在 when()
子句中。
when(admDatabaseConnector.getJdbcTemplate().getDataSource())
.query(anyObject(), anyObject(), anyObject())).thenReturn("Your return queryobject");
您必须在 Mock 中声明 admDatabaseConnector
。