2012-10-17 125 views
0

我正在爲使用SQLite數據庫的Android應用程序執行JUnit測試。我需要創建一個可以被測試用例操縱的測試數據庫。數據庫需要以已知的配置啓動,並針對每個測試用例進行重置。我想通過傳遞SQLiteOpenHelper作爲數據庫的文件名(see this article for details)作爲null的值可以使用內存數據庫。現在我也想爲我的一些測試填充數據庫表。我在本地文件系統上有一個CSV文件,其中包含一些可用於測試的數據。如何將這些數據存入模擬器或其他設備上的SQLite數據庫中進行測試?在Android上測試SQLite數據庫

+1

選中此:http://stackoverflow.com/questions/9109438/how-to-use-an-existing-database-with-an-android-application/9109728#9109728 –

+0

@YaqubAhmad感謝您的鏈接。我會在今晚或本週末晚些時候嘗試這些建議。 –

回答

2

SQLite庫代碼中沒有內置的CSV導入功能。

但是,sqlite3命令行工具可以導入CSV文件。一旦導入,您就可以使用adb工具將數據庫文件複製到設備中。 或者,您可以使用sqlite3的.dump命令來生成SQL命令來重新創建數據庫;然後將它們放入一個字符串數組中,或者將它們放入由測試程序讀取的文本文件中。

+0

我假設你所指的'sqlite3'工具將在我的桌面命令行上運行。因此,如果我將CSV文件導入到數據庫,那麼它將保存在我的桌面文件系統中。這種手工工作量很好。現在有沒有辦法在測試過程中以編程方式將數據庫導入到設備?我還需要擦除數據庫(可能是在'tearDown()'方法中),這對Android API來說應該不難。我不知道的唯一部分是首先在模擬器上獲取數據庫。 –