我有一个 Android Clean Architecture project用 3 个模块在 Kotlin 中编写:
- 数据(Android 库)
- 域(Java 库)
- 演示(Android 应用程序)
这 3 个模块每个都有用 junit 编写的单元测试。但是对于 Kotlin,默认情况下每个类都是最终的。我很快遇到了问题:如何使用 mockito 模拟 final类
现在可以使用 Mockito 2
这可以通过 mockito 扩展机制来完成,方法是创建包含一行的文件 /mockito-extensions/org.mockito.plugins.MockMaker
:
mock-maker-inline
This solution works very well on data module (Android Library) and presentation module (Android Application) but doesn't work on my domaine module (Java Library).
我知道这个问题已经有人问过( How to mock a final class with mockito , Mock objects calling final classes static methods with Mockito ),但我没有找到我正在寻找的答案。
最佳答案
您可以默认使用内联模拟方法,方法是将您的 Gradle 依赖项从普通的 Mockito 依赖项更改为:
compile "org.mockito:mockito-core:$mockito_version"
...到以下内容:
compile "org.mockito:mockito-inline:$mockito_version"
这样您就不必依赖于使用“资源文件夹中的文件”方法激活内联模拟,我发现这种方法有时不太可靠。
关于java - 如何在 Android 项目的 Java 模块上使用 Mockito 2 模拟最终类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43306269/