Spring Boot MockMVC Test не загружает файл Yaml
У меня есть моя конфигурация в файле application.yml в корне classpath (src/main/resources/). Конфигурация загружается нормально, когда я запускаю приложение в обычном режиме. Однако в моем тесте файл application.yml вообще не загружается.
Заголовок моего теста выглядит следующим образом:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(classes = Configuration.class)
@org.junit.Ignore
public class ApplicationIntegrationTest {
@Inject
private WebApplicationContext wac;
private MockMvc mockMvc;
@Before
public void setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
}
...
Класс конфигурации:
@EnableAutoConfiguration
@ComponentScan("c.e.t.s.web, c.e.t.s.service")
public class Configuration extends WebMvcConfigurerAdapter {
Когда я отлаживаю приложение, я вижу, что файлы yml загружаются в ConfigFileApplicationListener, однако в тесте ConfigFileApplicationListener не вызывается.
2 ответа
В справочном руководстве Spring Boot есть целая глава, посвященная тестированию. В этом разделе объясняется, как выполнить базовый тест для приложения Spring Boot.
Короче говоря, при использовании Spring Boot, и вы хотите сделать тест, вам нужно использовать @ SpringApplicationConfiguration
аннотация вместо @ContextConfiguration
аннотаций. @SpringApplicationConfiguration
является специализированным @ContextConfiguration
Расширение, которое регистрирует / загружает часть магии Spring Boot для тестовых случаев.
Существует хорошая интеграция между StringBoot, jUnit и YAML.
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(MainBootApplication.class)
public class MyJUnitTests {
...
}
@Configuration
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "section1")
public class BeanWithPropertiesFromYML {
...
}
Для более подробной информации, пожалуйста, проверьте мой комментарий здесь: /questions/46538689/kak-ispolzovat-yamlpropertiesfactorybean-dlya-zagruzki-fajlov-yaml-s-pomoschyu-spring-framework-41/46538710#46538710