我的應用程序在後端有一個數據庫,我在測試這個東西時遇到了很多麻煩。 (這是一個Android應用程序,但我認爲測試概念是相似的。在我的測試應用程序,我有一個數據庫適配器:使用模擬數據庫連接測試的機制
public class MyDatabaseAdapter() {
Cursor returnCursorFromQuery(SQLQuery query) {
// execute an SQL query and wrap the result in a Cursor object
}
}
我有一個方法,我試圖測試,它給當我的數據庫中選擇查詢正確的輸出不返回行:
MyDatabaseAdapter adapter;
public int methodUnderTest() {
this.adapter = new MyDatabaseAdapter();
return populate();
}
private int populate() {
SQLQuery query = new SQLQuery("SELECT * FROM my_table");
Cursor aCursor = this.adapter.returnCursorFromQuery(query);
// populate the UI
return aCursor.getCount();
}
我有一個返回在我的測試框架對所有查詢零行的模擬指針對象,我不明白的是我如何得到我的私人populate()
方法來針對模擬遊標對象而不是連接到我的實際數據庫的遊標運行其查詢,或者如果我編寫模擬數據庫適配器對象,如何讓methodUnderTest()
使用模擬適配器,而不是使用其編程使用的模擬適配器?
任何方向都會很有幫助。謝謝。