我使用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
}
現在,我有這種測試方法的測試方法,
@Test
public void testDbQueryThroughJdbcTemplate(){
Response response = dbQueryThroughJdbcTemplate(selectQuery);
TestCase.assertEquals(expected, response); // avoided the code for making expected object
}
現在,作爲測試環境使用HSQL DB,測試拋出一個錯誤日期方法不可用。
如何解決這個問題,或者有什麼更好的方法來實現這個目標?
+0
什麼測試支持的方法嗎? HSQL的作品,你不需要測試。測試您獲得的獨立於所用查詢機制的正確結果。如果問題是你需要完全改變查詢:你不應該那樣做。要麼使用MySQL,要麼模擬數據庫調用。 –
+0
@Gimby,更新了問題以使其更清晰 –
+0
正如我所說的,您正在測試錯誤的東西。 MySQL的日期函數和HSQL的日期函數可以工作,你不需要測試它。你應該測試的是你的應用程序如何響應查詢的結果,並且允許你通過嘲笑它使數據庫脫離測試。 –