【发布时间】:2017-05-21 07:14:33
【问题描述】:
所以我有一个数据库类,它有一个扩展 SQLOpenHelper 的依赖项,我正在使用 Android 检测测试和 Mockito 来模拟依赖项。我们注意到,Mockito 在执行Mockito.mock(class) 时实际上并没有模拟实现,而是实际代码正在运行并如我们预期的那样抛出空指针异常。在 API 19 设备上,测试按预期运行,并且模拟工作正常。
有人有什么建议或尝试吗?我已经尝试过具有类似结果的真实设备和模拟器。这可能是 Mockito 问题还是 dex-maker 问题?我在搜索时没有找到任何信息。
经过更多测试后,我用 Mockito 模拟的任何类实际上只是使用了实现。这是我的依赖项
androidTestCompile 'org.mockito:mockito-core:1.10.19'
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2'
注意:如果有任何区别,这也在库模块中。
【问题讨论】:
-
请添加一些测试示例代码。另外,我假设您在谈论 InstrumentedUnitTests (androidTest),对吧?
-
没错。我会得到一些示例代码。但无论我尝试模拟什么,Mockito 创建实例但执行实际代码,但仅在 >=API21 上且仅针对此项目,其他应用程序 Mockito 似乎工作正常。
-
MCVE 可能会有所帮助
-
澄清一下,您是否尝试过this question中的步骤?
-
我确实尝试了该解决方案,但没有效果。我将努力一起获得 MCVE
标签: android unit-testing mockito dexmaker