如何在 Mockito 和 JUnit 5 中使用注入?
在 JUnit4 中,我可以只使用@RunWith(MockitoJUnitRunner.class)注解。在 JUnit5 中是没有@RunWithAnnotation 的吗?
@RunWith(MockitoJUnitRunner.class)
@RunWith
有多种使用 Mockito 的方法——我将一一介绍。
Mockito::mock无论 JUnit 版本(或相关的测试框架)如何,都可以手动创建模拟。
Mockito::mock
无论 JUnit 版本如何(或测试框架,但 Java 9 可能会在此处干扰,具体取决于测试代码是否在模块中结束),都可以使用@Mock -annotation 和相应的调用来MockitoAnnotations::initMocks 创建模拟。
MockitoAnnotations::initMocks
JUnit 5 有一个强大的扩展模型,Mockito 最近在组/工件 ID org.mockito 下发布了一个: mockito-junit- jupiter 。
您可以通过添加@ExtendWith(MockitoExtension.class)到测试类并使用@Mock. 来自MockitoExtension的 JavaDoc:
@ExtendWith(MockitoExtension.class)
@Mock
MockitoExtension
@ExtendWith(MockitoExtension.class) public class ExampleTest { @Mock private List list; @Test public void shouldDoSomething() { list.add(100); } }
MockitoExtension 文档描述了实例化模拟的其他方法,例如使用构造函数注入(如果您在测试类中引用 final 字段)。
JUnit 4 规则和运行器在 JUnit 5 中不起作用,因此不能使用MockitoRule和Mockito 运行器。
MockitoRule