如何在 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