我正在为我的应用程序编写集成测试,并希望为我的测试使用自定义webmvc配置
我的基础包com.marco.nutri中有三个类:
我的测试是在包br.com.marco.nutri.integration.auth:
@RunWith(SpringRunner.class)
@SpringBootTest(classes={Application.class, WebMvcTestConfiguration.class, SecurityConfig.class})
public class ITSignup {
//Test code
}
我在com.marco.nutri.integration包中有一个测试配置类:
@TestConfiguration
@EnableWebMvc
public class WebMvcTestConfiguration extends WebMvcConfigurerAdapter {
//Some configuration
}
但是当我运行测试时,选择了MvcConfig.class而不是WebMvcTestConfiguration.class
我做错了什么?
答案 0 :(得分:4)
您可以使用@Profile("test")
和真实的@Profile("production")
并在您的属性文件中放置属性spring.profiles.active=production
并在测试类中放置@Profile("test")
。因此,当您的应用程序启动时,它将使用“生产”类,当测试星星时,它将使用“测试”类。
来自文档
与常规@Configuration类不同,使用@TestConfiguration 不会阻止自动检测@SpringBootConfiguration。
与嵌套的@Configuration类不同,后者将用于代替 应用程序的主要配置,嵌套的@TestConfiguration 除了应用程序的主要内容之外,还将使用class 配置。