2
我想爲我的應用程序數據庫編寫測試用例。這是我的設置方法做:RenamingDelegatingContext不創建測試數據庫
@Before
public void testCaseSetUp() {
RenamingDelegatingContext context = new RenamingDelegatingContext(getTargetContext(), "test_");
dbController = new DBController(context);
dbController.open();
}
DBController.java
public DBController(Context c) {
context = c;
}
public DBController open() throws SQLException {
dbHelper = DBHelper.getInstance(context);
database = dbHelper.getWritableDatabase();
return this;
}
RenamingDelegatingContext不創建一個新的測試數據庫,而不是使用現有的數據庫文件。這導致我的測試用例失敗,因爲我已經有了數據。
這是一個很好的結果。我爲我的助手類使用了單例模式。葛麗塔謝謝你。 –
有沒有一種方法可以創建一個單獨的測試數據庫來進行測試,然後在拆解時將其銷燬。這樣我就不會觸碰生產數據庫? –
正確使用'RenamingDelegatingContext'是要走的路。當你在'SQLiteOpenHelper'中使用這個上下文時,它會創建一個與你的真實無關的測試數據庫!如果答案對你有幫助,也許你可以讚揚它 - 這樣其他人就會知道這就是解決方案。 – Vesko