Spring boot 何时使用@RunWith和何时使用@ExtendWith

Spring boot 何时使用@RunWith和何时使用@ExtendWith,spring-boot,annotations,junit4,junit5,Spring Boot,Annotations,Junit4,Junit5,我的团队和我一直在使用SpringBoot开发一系列微服务。 由于服务经历了JUnit和Spring Boot升级(我们现在使用的是Spring Boot 2和JUnit 5),不同开发人员实现的不同JUnit现在使用不同的模式: @延伸 @RunWith 今天,它们之间的区别是什么?我们真的需要它们来进行单元测试还是嵌入到一些新的Spring Boot注释中?@RunWith是JUnit 4中一个使用测试运行程序的旧注释。如果您使用的是JUnit 5(Jupiter),那么应该使用@Ext

我的团队和我一直在使用SpringBoot开发一系列微服务。 由于服务经历了JUnit和Spring Boot升级(我们现在使用的是Spring Boot 2和JUnit 5),不同开发人员实现的不同JUnit现在使用不同的模式:

  • @延伸
  • @RunWith

今天,它们之间的区别是什么?我们真的需要它们来进行单元测试还是嵌入到一些新的Spring Boot注释中?

@RunWith
是JUnit 4中一个使用测试运行程序的旧注释。如果您使用的是JUnit 5(Jupiter),那么应该使用
@ExtendWith
来使用JUnit扩展。

答案可以在以下内容中找到:

如果您使用的是JUnit4,不要忘记 将@RunWith(SpringRunner.class)添加到测试中,否则 注释将被忽略。如果您使用的是JUnit5,那么就没有必要了 将等效的@ExtendWith(SpringExtension.class)添加为@SpringBootTest,并将 其他@…测试说明已经用它进行了注释


.

如果您使用的是Junit版本<5,则必须使用
@RunWith(SpringRunner.class)
@RunWith(MockitoJUnitRunner.class)


如果您使用的是Junit version=5,那么必须使用
@ExtendWith(SpringExtension.class)
@ExtendWith(MockitoExtension.class)