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

Java如何使用Mockito模拟最终课程

解阳泽
2023-03-14
问题内容

我上了最后一堂课,像这样:

public final class RainOnTrees{

   public void startRain(){

        // some code here
   }
}

我在其他这样的班级中使用这个班级:

public class Seasons{

   RainOnTrees rain = new RainOnTrees();

   public void findSeasonAndRain(){

        rain.startRain();

    }
}

在我的JUnit测试类中,Seasons.java我想模拟RainOnTrees该类。我该如何使用Mockito做到这一点?


问题答案:

仅在Mockito v2中可以模拟最终/静态类/方法。

将此添加到你的gradle文件中:

testImplementation 'org.mockito:mockito-inline:2.13.0'

使用Mockito常见问题解答中的 Mockito v1,这是不可能的:

`What are the limitations of Mockito
- Needs java 1.5+
- Cannot mock final classes

…`



 类似资料:
  • 问题内容: 我有一个用3个模块在Kotlin中编写的Android Clean Architecture项目 : 数据(Android库) domaine(Java库) 演示文稿(Android应用程序) 这3个模块均具有用junit编写的单元测试 。但是对于Kotlin,默认情况下每个课程都是最终课程。我很快遇到了一个问题: 如何用模拟方法模拟最终课程 现在可以用Mockito 2 通过创建包含

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

  • 我正在将Powermock从我目前正在进行的项目中移除,因此我试图仅用Mockito(Mockito-Core-2.2.28)重写一些现有的unitary测试。 无法模拟/Spy类Com.ExternalPackagePath.ExternalClass Mockito无法模仿/监视,因为: 最终类 正如Mockito文档(https://github.com/Mockito/Mockito/wi

  • 我在github示例中发现了如何使用standart Mockito创建final类(BluetoOthgatt.class)实例: 但从Mockito常见问题: Mockito的局限性是什么 需要java 1.5+ 无法模拟最终类 ... 我检查了它是来自标准android-sdk的BluetoothGatt,所以它看起来像模拟的最终类。现在我尝试build project,以确保该测试工作正常

  • 我无法使用mockito2模拟一个Kotlin final类。另外我还在用Robolectric。 这是我的测试代码: 请注意,我使用的是Mockito Version2,我使用的是依赖项,它自动启用模拟最终类的功能。

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