Mockito 在 Lollipop 或更高版本中模拟 运行 实际 Android 代码

Mockito mocks run actual Android code in Lollipop or greater

所以我有一个数据库 class,它有一个扩展 SQLOpenHelper 的依赖项,我正在使用 Android 检测测试和 Mockito 来模拟依赖项。我们注意到 Mockito 在执行 Mockito.mock(class) 时实际上并没有模拟实现,而是实际代码是 运行ning 并像我们预期的那样抛出空指针异常。在 API 19 台设备上,测试 运行 符合预期并且模拟工作正常。

有没有人有任何建议或可以尝试的事情?我已经尝试过具有类似结果的真实设备和模拟器。这可能是 Mockito 问题,还是 dex-maker 问题?我在搜索时没有找到任何信息。

经过更多测试 class 我用 Mockito 进行模拟实际上只是使用了实现。这是我的依赖项

androidTestCompile 'org.mockito:mockito-core:1.10.19'
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2'

注意:如果有任何不同,这也在库模块中。

所以摆脱我们旧的 Mockito 依赖项和 dexmaker 并使用新的:Mockito-android

解决了我们的问题