"@ExtendWith(SpringExtension.class)"和"@ExtendWith(MockitoExtension.class)"之间有什么区别?

37

我之前在使用mockito进行junit测试时使用的是@RunWith(MockitoJUnitRunner.class)。但现在我要开始使用spring-boot和JUnit 5了。
这两个注释有什么区别?
我能否只使用@ExtendWith(SpringExtension.class)来模拟我的对象?

1个回答

83

当使用Spring时:

如果您想在测试中使用Spring的测试框架功能,例如@MockBean,则必须使用@ExtendWith(SpringExtension.class)。它替代了已弃用的JUnit4@RunWith(SpringJUnit4ClassRunner.class)

当不涉及Spring时:

如果您只想涉及Mockito并且不必涉及Spring,例如,当您只想使用@Mock / @InjectMocks注释时,则要使用@ExtendWith(MockitoExtension.class),因为它不会加载一堆不需要的Spring内容。它替换了已弃用的JUnit4@RunWith(MockitoJUnitRunner.class)

回答您的问题:

是的,您可以只使用@ExtendWith(SpringExtension.class),但如果您的测试中不涉及Spring测试框架功能,那么您可能只想使用@ExtendWith(MockitoExtension.class)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接