我試圖找到一種方法,單元測試我的MySQL相關的代碼。我知道我希望如何工作,但無法找到適合我的解決方案。我研究過DBUnit,但看起來(如果我沒有弄錯),這將需要一個運行的數據庫,並且只是幫助單元測試。我想要一些方法來避免在測試時運行mysql數據庫。什麼工作將會是某種實際將數據存儲在內存中的MySQL欺騙驅動程序,而不需要訪問真正的持久數據庫。數據庫單元測試(MySQL的)
在我的代碼是硬編碼訪問MySQL數據庫,所以我不能只是注入一些模仿的對象。我想它的工作方式是,當我的代碼調用:
DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database, username, password);
它實際上獲取可以通過行家或在Maven測試的設置來配置一些其他本地數據庫。我研究了基於內存的數據庫,如HSQLDB,但無法找到一種方式來欺騙MySQL驅動程序。
有沒有提供什麼,我期待的任何工具?你有任何測試MySQL相關代碼的好方法嗎?
http://stackoverflow.com/questions/10692398/how-do-i-make-a-mysql-database-run-completely-in-memory 當單元測試記住首先填充數據庫之前啓動主程序。 – Tschallacka
我不知道如何在沒有運行實際的mysql服務器的情況下使用它。但是這個想法確實讓我想到了在單元測試期間運行嵌入式mysql服務器。 – flungo