如何在Mockito和JUnit 5中使用注入?
在JUnit4中,我可以只使用@RunWith(MockitoJUnitRunner.class)Annotation。在JUnit5中没有@RunWith注释吗?
@RunWith(MockitoJUnitRunner.class)
@RunWith
有多种使用Mockito的方法-我将一一介绍。
Mockito::mock无论JUnit版本是什么(或测试框架),都可以使用Works手动创建模拟。
Mockito::mock
使用@Mock -annotation和相应的调用MockitoAnnotations::initMocks 来创建嘲笑的作品无论JUnit版本(或测试框架,对于这个问题,但测试代码是否在一个模块中最终还是不是Java 9干扰可能在这里,取决于)。
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文档描述了实例化模拟的其他方式,例如,通过构造函数注入(如果您在测试类中对最后的字段进行重载)。
JUnit 4规则和运行器在JUnit 5中不起作用,因此不能使用MockitoRule和Mockito运行器。
MockitoRule