小编典典

如何在 JUnit5 中使用 Mockito

all

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

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


阅读 101

收藏
2022-08-07

共1个答案

小编典典

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

手动

Mockito::mock无论 JUnit
版本(或相关的测试框架)如何,都可以手动创建模拟。

基于注释

无论 JUnit 版本如何(或测试框架,但 Java 9
可能会在此处干扰,具体取决于测试代码是否在模块中结束),都可以使用@Mock -annotation
和相应的调用来MockitoAnnotations::initMocks
创建模拟。

模拟扩展

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 文档描述了实例化模拟的其他方法,例如使用构造函数注入(如果您在测试类中引用
final 字段)。

没有规则,没有跑步者

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

2022-08-07