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

问题描述 投票:0回答:2

我使用

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

java spring-boot mockito junit5
2个回答
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)


-1
投票

有谁知道性能是否有任何改进?

© www.soinside.com 2019 - 2024. All rights reserved.