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

如何在JUnit5中使用Mockito

翁昊乾
2023-03-14
问题内容

如何在Mockito和JUnit 5中使用注入?

在JUnit4中,我可以只使用@RunWith(MockitoJUnitRunner.class)Annotation。在JUnit5中没有@RunWith注释吗?


问题答案:

有多种使用Mockito的方法-我将一一介绍。

手动地

Mockito::mock无论JUnit版本是什么(或测试框架),都可以使用Works手动创建模拟。

基于注释

使用@Mock
-annotation和相应的调用MockitoAnnotations::initMocks
来创建嘲笑的作品无论JUnit版本(或测试框架,对于这个问题,但测试代码是否在一个模块中最终还是不是Java
9干扰可能在这里,取决于)。


Mockito扩展

JUnit
5具有强大的扩展模型,Mockito最近在组/工件ID org.mockito
__下发布了一个
模型: mockito-junit-
jupiter

您可以通过添加@ExtendWith(MockitoExtension.class)到测试类并使用注释模拟字段来应用扩展@Mock。从MockitoExtension的JavaDoc:

@ExtendWith(MockitoExtension.class)
public class ExampleTest {

    @Mock
    private List list;

    @Test
    public void shouldDoSomething() {
        list.add(100);
    }

}

MockitoExtension文档描述了实例化模拟的其他方式,例如,通过构造函数注入(如果您在测试类中对最后的字段进行重载)。

没有规则,没有赛跑者

JUnit 4规则和运行器在JUnit
5中不起作用,因此不能使用MockitoRule和Mockito运行器。



 类似资料:
  • 如何使用Mockito和JUnit 5的注射? 在JUnit4中,我可以只使用注释。JUnit5中没有注释吗?

  • 在成功运行JUnit4测试后,我试图将JUnit5与Gradle一起使用。 而我唯一的测试包含 我觉得这很奇怪! 我的生成文件是 我的文件夹结构是,使用包, 在我使用的IntelliJ2017.1.3中,模块结构如下所示 因为Gradle现在想要源代码和测试在他们自己的包中。 使用gradle在intellij中从JUnit4升级到JUnit5 链接回到上面的问题,并链接到这个Jetbrains博

  • 我希望将内置的JUnit5与Gradle Kotlin DSL一起使用,因为在构建过程中,我会收到以下警告: 另外,这个问题是相关的,但要求创建新的任务,而不是定制现有的任务:我如何在gradle kotlin-dsl中覆盖一个任务 这里有一个正常分级的解决方案。

  • Web上使用Neo4j进行Spring集成测试的大多数示例仍然在JUnit4上,并且使用Neo4JRule。 我们如何为Neo4j+Spring+JUnit5创建一个设置?

  • 我正在迁移到JUnit5,我想知道在JUnit5中是否有一种简单的方法可以知道测试何时失败,就像我们在使用TestWatcher的JUnit4中那样。 我做了一些研究,发现了一些类似的问题,但仍未解决,比如这样一个问题:https://github.com/junit-team/junit5/issues/542因为大多数问题都很老,所以我想问一下,以防最近有一个解决方案。 想法是能够做一个屏幕截