【发布时间】:2016-03-02 03:48:48
【问题描述】:
我正在尝试为我的数据库编写测试用例。
我有一个扩展至 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。
我该如何解决这个问题。我也在以正确的方式嘲笑它。我对此进行了很多搜索,但没有找到解决方案。测试数据库查询的最佳方法是什么。
【问题讨论】:
标签: android sqlite junit mockito junit4