[英]Writing SQLiteOpenHelper test cases in JUnit4 and Mockito
我正在嘗試為我的數據庫編寫測試用例。
我有一個擴展到SQLiteOpenHelper的輔助類
DBHelper.java
public DBHelper(Context context) {
super(context, DBConstants.DATABASE_NAME, null, DBConstants.DATABASE_VERSION);
}
和一個包含所有插入刪除等的構造函數類
DBController.java
public DBController open() throws SQLException {
dbHelper = DBHelper.getInstance(context);
database = dbHelper.getWritableDatabase();
return this;
}
我的考試班
DBControllerTest.java
@Mock
Context mContext;
DBController dbController;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
RenamingDelegatingContext context = new RenamingDelegatingContext(mContext, "test_");
dbController = new DBController(context);
dbController.open();
}
這時當我執行dbController.open()時,dbHelper.getWritableDatabase()始終返回null。
我該如何解決這個問題。 我也是以正確的方式嘲笑它。 我搜索了很多但沒有找到解決方案。 測試數據庫查詢的最佳方法是什么?
你不能像這樣模擬Context
,你需要使用instrumentation的Context
。 由於此測試需要Android代碼並因此需要檢測,因此請確保將其放入androidTest
目錄中的測試中。
請參閱此答案以獲取示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.