为什么春季启动应用程序中的测试在没有@RunWith(SpringRunner.class)的情况下仍然可以工作,而只有



我不明白为什么我的执行测试在没有@RunWith(SpringRunner.class(的情况下运行得很好。我在测试类之上只有@SpringBootTest。请解释以下情况:1( 什么时候我必须将@RunWith(SpringRunner.class(和@SpringBootTest设置在一起?2( 当我只能设置@RunWith(SpringRunner.class(和@SpringBootTest时,使用是多余的?3( 当我只能设置@SpringBootTest和@RunWith(SpringRunner.class(时,使用是多余的?

我的代码执行良好的测试是:

@SpringBootTest
//@RunWith(SpringRunner.class)
class SpringBootSimpleTestExampleApplicationTests {

@Autowired
private ApplicationContext applicationContext;

@Test
void contextLoads() {
Object restTempalte = applicationContext.getBeanDefinitionCount();
Assertions.assertThat(applicationContext).isNotNull();
}
}

@SpringBootTest

它在@ContextConfiguration提供的常规Spring TestContext之上提供了以下功能(classes=…​)弹簧测试中的注释。

当未使用嵌套的@Configuration类并且未指定显式类时,自动搜索@SpringBootConfiguration。允许使用properties属性定义自定义环境属性。提供对不同webEnvironment模式的支持,包括启动完全运行的web服务器侦听已定义或随机端口的功能。注册TestRestTemplate和/或WebTestClientbean,以便在使用完全运行的web服务器的web测试中使用。

https://howtodoinjava.com/spring-boot2/testing/springboottest-annotation/

相关内容

最新更新