当前位置: 首页 > 面试题库 >

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

邢凌
2023-03-14
问题内容

我有一个用3个模块在Kotlin中编写的Android Clean
Architecture项目

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

这3个模块均具有用junit编写的单元测试 。但是对于Kotlin,默认情况下每个课程都是最终课程。我很快遇到了一个问题:
如何用模拟方法模拟最终课程

现在可以用Mockito 2

通过创建/mockito-extensions/org.mockito.plugins.MockMaker包含单行的文件,可以通过模仿扩展机制来完成:

mock-maker-inline

该解决方案在数据模块(Android库)和表示模块(Android应用程序)上效果很好, 但在我的域模块(Java库)上不起作用

我知道,这个问题已经被问(如何嘲笑最后类的Mockito,模拟对象调用final类与静态的Mockito方法),但我没有找到我要找的答案。


问题答案:

默认情况下,可以通过将Gradle依赖项从常规Mockito依赖项更改来使用内联模拟方法:

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

…至以下内容:

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

这样,您将不必依靠使用“资源文件夹中的文件”方法激活内联模拟,有时我发现这种方法很不稳定。



 类似资料:
  • 问题内容: 我上了最后一堂课,像这样: 我在其他这样的班级中使用这个班级: 在我的JUnit测试类中,Seasons.java我想模拟RainOnTrees该类。我该如何使用Mockito做到这一点? 问题答案: 仅在Mockito v2中可以模拟最终/静态类/方法。 将此添加到你的gradle文件中: 使用Mockito常见问题解答中的 Mockito v1,这是不可能的: `What are

  • 我在一个maven项目中使用了mockito-core-2.7.21,它正按预期工作。 但是为了启用对final类的模拟,我在源文件夹下创建了一个文件并添加了文本。 按照https://www.baeldung.com/mockito-final以及Mock final class with mockito2,它应该允许我模拟final class,但当我运行junit测试时,我得到以下错误: J

  • 问题内容: 我该如何与正在测试的班级中的Mockito其他班级进行模拟? 例如: MyClass.java 任何东西PerformerClass.java 并测试: 我是否可以欺骗以排除不必要的逻辑?我可以重写方法来简单地返回还是? 为什么指定Mockito,因为在Robolectric进行Android测试时需要它。 问题答案: 您可以重构,以便它使用依赖注入。不用让它创建实例,您可以将类的实例

  • 如何在android xamarin项目中使用来自Maven或j-center存储库的预构建模块代码?

  • 我有最后一节课,大概是这样的: 我在其他类中使用这个类,如下所示: 在的JUnit测试类中,我想模拟类。我怎么能用莫基托做到这一点?

  • 我有最后一节课。 org.mockito.exceptions.base.MockitoExc0019:不能模拟/间谍类改造2.响应Mockito不能模拟/监视以下内容:-最终类-匿名类-原始类型 如何使用Powermockito模拟响应类?