如何在JUnit5中使用Mockito

如何使用Mockito和JUnit 5进样?

在JUnit4中,我可以使用@RunWith(MockitoJUnitRunner.class)Annotation。在JUnit5中没有@RunWith Annotation?
使用Mockito有不同的方法 – 我将逐一介绍它们。

手动

无论JUnit版本(或测试框架)如何,使用Mockito::mock手动创建模拟都可以正常工作。

基于注释

使用@Mock-annotation和相应的MockitoAnnotations::initMocks调用
到create mocks工作无论JUnit版本(或测试框架,但Java 9可能会干扰这里,取决于测试代码是否在模块中结束)。

Mockito扩展

JUnit 5有a powerful extension model,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);
    }
}

The Mockito documentation对扩展仍然有点沉默。

没有规则,没有跑步者

JUnit 4规则和运行程序在JUnit 5中不起作用,因此无法使用MockitoRule和Mockito runner。

你可能感兴趣的:(单元测试)