一尘不染

如何在JUnit5中使用Mockito

java

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

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


阅读 313

收藏
2020-09-08

共1个答案

一尘不染

有多种使用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中不起作用,因此不能使用MockitoRuleMockito运行器。

2020-09-08