2017-03-08 12 views
1

코드 아래 모의 도와주세요 .JdbcTemplate 객체를 호출하는 getDataSource()를 조롱 할 수 없습니다.스프링에서 데이터 소스를 모방하는 방법 JdbcTemplate

@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; 
       } 
      }); 
} 
+0

은 admDatabaseConnector autowrired입니까? –

+0

또한 단위 테스트 또는 통합 테스트를 원하십니까? –

답변

0

모의 틀은 무엇을 사용하고 있습니까?

Mockito를 사용하는 경우 jdbcTemplate을 모의하고이 방법을 when() 절에 넣으십시오.

when(admDatabaseConnector.getJdbcTemplate().getDataSource()) 
      .query(anyObject(), anyObject(), anyObject())).thenReturn("Your return queryobject"); 

당신은 모의에 admDatabaseConnector를 선언해야합니다.

+0

감사합니다.이 논리를 사용하고 Junit 코드가 올바르게 작동합니다. – Gaurav

+0

@ Gaurav이 대답이 효과가 있다면 답을 받아 들여야합니다. – Stewart