如何使用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对扩展仍然有点沉默。
没有规则,没有跑步者
【如何在JUnit5中使用Mockito】JUnit 4规则和运行程序在JUnit 5中不起作用,因此无法使用MockitoRule和Mockito runner。