java - 如何在 Android 项目的 Java 模块上使用 Mockito 2 模拟最终类?

标签 java android junit mockito kotlin

我有一个 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/

相关文章:

java - NiFi Confluence Schema 注册表异常

java - 从键盘输入一个字符串,检查有多少个可用的元音,并提取字符串的中间字符

java - 必须先发出 STARTTLS 命令

android - 设备上异常的 HttpHostConnectException

android - 为什么 Android TabHost 从 TextView 窃取焦点?

java - 使用 JUnit assertEquals 的自定义异常消息?

java - 如何在大型文本文件中找到第 n 次出现(反向)的单词?

android mapview 最大缩放级别只有 19

unit-testing - 在哪里可以找到 EJB 和 J2EE 的良好单元测试资源?

java - JUNIT - 断言异常