如何在Android项目中的Java模块上模拟Mockito 2的最终课程?

我有一个Android Clean Architecture项目,在Kotlin中有三个模块:

  • 数据(Android库)
  • domaine(Java库)
  • 演示(Android应用程序)

这三个模块都有用junit编写的单元测试 。 但是对于Kotlin,每个课程都是默认的最终课程。 我很快就遇到了问题: 如何用mockito来嘲笑最后一堂课

现在可以用Mockito 2

可以通过mockito扩展机制来完成,方法是创建包含一行的文件/mockito-extensions/org.mockito.plugins.MockMaker

 mock-maker-inline 

此解决方案在数据模块(Android库)和表示模块(Android应用程序)上运行良好, 但在我的domaine模块(Java库)上不起作用

我知道这个问题已经被问到( 如何用mockito来模拟最后一个类 , Mock对象用Mockito来调用最终类的静态方法 ),但是我没有找到我正在寻找的答案。

默认情况下,可以使用内联模拟方法,通过将Gradle依赖关系从普通Mockito依赖关系中更改:

 compile "org.mockito:mockito-core:$mockito_version" 

…以下内容:

 compile "org.mockito:mockito-inline:$mockito_version" 

这样你就不必依靠激活内联嘲笑“资源文件夹中的文件”方法,有时我发现它是片状的。