从Spring开始。io:
@RunWith(SpringRunner.class)
告诉JUnit使用Spring的测试支持运行SpringRunner
是SpringJUnit4ClassRunner
的新名称,只是看起来简单了一点。
@SpringBootTest
是说引导与Spring Boot的支持(例如加载application.properties
并给我所有的Spring Boot的优点)
因此,如果您不需要Spring Boot为集成测试加载的所有内容,您可能不需要@SpringBootTest
@RunAnd是JUnit 4中使用测试运行程序的旧注释。如果您正在使用JUnit 5(Jupiter),您应该使用@ExentiAnd来使用JUnit扩展
看https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing
“如果您使用的是JUnit 4,请不要忘记将@RunWith(SpringRunner.class)添加到测试中,否则注释将被忽略。如果您使用的是JUnit 5,则无需将等效的@ExtendWith(SpringExtension.class)添加为@SpringBootTest,其他@…测试注释已经用它进行了注释。
@RunAnd(SpringRunner.class):您需要这个注释来在jUnit测试期间启用Spring引导功能,如@autowire
,@MockBean
等
用于在Spring Boot测试功能和JUnit之间提供桥梁。每当我们在JUnit测试中使用任何Spring Boot测试功能时,都需要这个注释。
@SpringBootTest:此注释用于加载端到端集成测试的完整应用程序上下文
当我们需要引导整个容器时,可以使用@SpringBootTest注释。注释通过创建将在测试中使用的ApplicationContext来工作。
下面是一篇关于这两种情况的文章