我有一個應用程序使用ContentProvider來提供數據而不是直接訪問數據庫。該應用程序按預期工作,但我有單元測試問題:我如何強制ContentProvider使用測試數據庫而不是「活」的?如果我沒有使用ContentProvider的,我可以通過不同的數據庫名我SQLiteOpenHelper
sublass的構造,但現在的數據庫,在我的ContentProvider到的onCreate()的調用創建:使用ContentProvider和數據庫進行Android單元測試
@Override
public boolean onCreate()
{
UKMPGDataProvider.init(getContext(), Constants.DATABASE_NAME);
return (UKMPGDataProvider.getWritableDatabase() == null) ? false : true;
}
,你可以看,數據庫名稱是硬編碼的。
有沒有辦法將測試名稱傳遞給ContentProvider?
因此,對於ProviderTestCase2,是否可以測試MyListContactActivity行爲,而不會搞亂真正的Android Contact ContentProvider?你有任何工作測試代碼? – sancho21 2014-05-29 23:05:27