2010-03-30 41 views
1

我試圖在我的應用程序上開始單元測試(應該從一開始就這樣做)。我有一個Eclipse項目結構設置,一切似乎運作良好,但...Android單元測試和使用不同的數據庫文件

我繼承SQLiteOpenHelper訪問應用程序數據庫。這適用於應用程序,但在單元測試中使用相同的類時,它將寫入與實際應用程序相同的數據庫。這顯然相當令人惱火,因爲在開發和測試實際應用程序時出現單元測試數據。

什麼使SQLiteOpenHelper類寫入到不同的數據庫文件時,從單元測試被稱爲最好的方法是什麼?

回答

2

如果你沒有與添加一些代碼到你原來的程序問題,你也可以一類變量和適當的getter和setter方法添加到您的應用程序子類定義,如果你在測試模式與否。然後你的單元測試類可以訪問setter方法並設置「true」的測試。在您的代碼中定義數據庫的位置,您可以訪問getter方法來決定要採用哪個數據庫。

2

你可以考慮過度使用EasyMock的圖書館在easymock.org嘲笑SQLiteOpenHelpers子類,它的方法。

0

爲了避免對原始類進行很多更改,我在每次測試開始時備份數據庫文件(使用copyFile),清除/插入正確的值,然後恢復備份的數據庫文件完成測試後。