0
MySQL을 응용 프로그램 데이터베이스로 사용하지만 HSQL을 테스트 인 메모리 데이터베이스로 사용하고 있습니다. 이제 문제는 내가 SQL의 selectQuery 아래와 같이 가질 수 있습니다 :) 이제HSQL 및 MySQL의 차이점
SELECT date(a.created_at) as record_date
FROM table a
, 날짜 (날짜에 날짜 시간을 변환 MYSQL의 함수이지만, HSQL에서 동일한 기능이 TO_DATE은()이다. 자, 위의 쿼리를 데이터베이스에 전달하고 출력을 얻는 메소드가 있습니다.
public Response dbQueryThroughJdbcTemplate(String selectQuery){
jdbcTemplate.query(selectQuery, RowMapper); //RowMapper maps output to Response
}
는 지금, 나는 테스트 환경은 HSQL DB를 사용하고 지금처럼 시험 날짜 방법을 사용할 수 없다는 오류가 발생합니다
@Test
public void testDbQueryThroughJdbcTemplate(){
Response response = dbQueryThroughJdbcTemplate(selectQuery);
TestCase.assertEquals(expected, response); // avoided the code for making expected object
}
이 방법을 테스트하기위한 시험 방법을 가지고있다.
이 문제를 해결하는 방법이나 더 좋은 방법은 무엇입니까?
무엇인지에 대한 테스트를 모두 지원하는 대안을 시도 할 수 있습니다? HSQL이 작동하면 테스트 할 필요가 없습니다. 사용 된 쿼리 메커니즘과 독립적 인 올바른 결과를 얻을 수 있는지 테스트하십시오. 문제가 완전히 쿼리를 변경해야하는 경우 : 그렇게해서는 안됩니다. MySQL을 사용하거나 데이터베이스 호출을 조롱하십시오. – Gimby
@ 김비, 더 명확하게 질문을 업데이트했습니다. – greperror
내가 말했듯이, 당신은 잘못된 것을 테스트하고 있습니다. MySQL의 날짜 함수와 HSQL의 날짜 함수가 작동하면 테스트 할 필요가 없습니다. 테스트해야하는 것은 애플리케이션이 쿼리 결과에 어떻게 반응하는지, 그리고이를 조롱하여 데이터베이스를 테스트에서 제외시키는 것입니다. – Gimby