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

1bqhqjot  于 12个月前  发布在  Spring
关注(0)|答案(1)|浏览(268)

我在mockito中使用@RunWith(MockitoJUnitRunner.class)进行junit测试。但现在我使用spring-boot和JUnit 5。
这两个注解有什么区别?
我可以只使用@ExtendWith(SpringExtension.class)来模拟我的对象吗?

0g0grzrc

0g0grzrc1#

涉及Spring时

如果你想在你的测试中使用Spring测试框架功能,比如@MockBean,那么你必须使用@ExtendWith(SpringExtension.class)。它取代了弃用的JUnit 4 @RunWith(SpringJUnit4ClassRunner.class)

不涉及Spring时

如果你只想使用Mockito而不需要使用Spring,例如,当你只想使用@Mock/@InjectMocks annotations时,那么你需要使用@ExtendWith(MockitoExtension.class),因为它不会加载一堆不需要的Spring东西。它取代了弃用的JUnit 4 @RunWith(MockitoJUnitRunner.class)

回答您的问题

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

相关问题