【发布时间】:2017-05-06 13:41:23
【问题描述】:
我正在尝试创建一个greenDAO 数据库会话对象以用于我的junit 测试。当我尝试获取SQLiteDatabase 对象时,我总是得到空值。
没有返回错误,我不知道为什么。
代码下方:
@RunWith(MockitoJUnitRunner.class)
public class ChatRoomModuleTest {
SomeEntityDao someEntityDao;
@Mock
Context mMockContext;
@Rule
public MockitoRule mockitoRule = MockitoJUnit.rule();
@Before
public void Before(){
DaoMaster.DevOpenHelper openHelper = new DaoMaster.DevOpenHelper(mMockContext, "myapp-db", null);
SQLiteDatabase db = openHelper.getWritableDatabase(); //always return null;
DaoSession daoSession = new DaoMaster(db).newSession();
someEntityDao = daoSession.getSomeEntityDao();
}
}
注意:我知道我可以使用 android 测试对其进行测试,但是它们要慢得多,并且不需要测试独立的平台逻辑。
【问题讨论】:
-
应该是单元测试还是集成测试?
-
应该是测试一个中间层类
-
你模拟了上下文。你不应该在传递给 DevOpneHelper 之前先设置它吗?
-
我想到了,但是如何正确设置呢?不知道助手期望什么。
-
我可以帮助正确设置 junit / mockito,但该课程的期望超出了我的知识范围。