使用 greendao 和 Mockito 测试 Android 应用程序

Testing Android App using greendao with Mockito

我不熟悉 android 测试并尝试在 Android Studio 中使用 mockito 编写单元测试(运行 在本地 jvm 上)。

我的 IDE 设置(gradle 脚本)到目前为止已完成。

dependencies {
   compile fileTree(include: ['*.jar'], dir: 'libs')

   // Unit testing dependencies.
   testCompile 'junit:junit:4.12'
   testCompile 'org.mockito:mockito-core:1.10.19'
}

在我的应用程序中,我使用 greendao 作为 ORM,但还没有这一层的抽象(计划在未来)。 当我尝试测试使用数据库相关 类 的应用程序代码部分时(例如 SqliteOpenHelperSqliteDatabase 用于设置数据库、SQLiteStatement 用于编译语句等)测试异常退出,例如 SQLiteOpenHelper not mocked

是否可以在这种模拟数据库的场景中编写单元测试(现在不花时间抽象数据库层)?

问题是获取正确的 Context 来初始化数据库层。 使用robolectric你可以在测试环境中使用RuntimeEnvironment.application得到一个Context对象,所以用单元测试初始化​​数据库层是运行在本地JVM上没有任何设备或模拟器。