【问题标题】:What is the difference between @ExtendWith(SpringExtension.class) and @ExtendWith(MockitoExtension.class)?@ExtendWith(SpringExtension.class) 和 @ExtendWith(MockitoExtension.class) 有什么区别?
【发布时间】:2020-06-04 02:35:56
【问题描述】:

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

【问题讨论】:

    标签: java spring-boot mockito junit5


    【解决方案1】:

    涉及 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)。

    【讨论】:

      猜你喜欢
      • 2018-09-24
      • 2021-10-27
      • 2020-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-29
      相关资源
      最近更新 更多