Spring Boot: тестирование, исключение тестовой конфигурации, использование аргументов приложения
Исключение тестовой конфигурации
Если ваше приложение использует компонентное сканирование (например, если вы используете @SpringBootApplication или @ComponentScan), вы можете найти классы конфигурации верхнего уровня, которые вы создали только для определенных тестов, случайно обнаруженные везде.
@TestConfiguration может использоваться во внутреннем классе теста для настройки первичной конфигурации. При размещении в классе верхнего уровня, @TestConfiguration указывает, что классы в src/test/java не должны выбираться при сканировании. Затем вы можете импортировать этот класс явно, где это требуется, как показано в следующем примере:
@SpringBootTest
@Import(MyTestsConfiguration.class)
class MyTests {
@Test
void exampleTest() {
...
}
}
Если вы напрямую используете @ComponentScan (то есть не через @SpringBootApplication), вам необходимо зарегистрировать в нем TypeExcludeFilter.
Использование аргументов приложения
Если ваше приложение ожидает аргументы, вы можете сделать так, чтобы @SpringBootTest вставлял их, используя атрибут args.
@SpringBootTest(args = "--app.test=one")
class ApplicationArgumentsExampleTests {
@Test
void applicationArgumentsPopulated(@Autowired ApplicationArguments args) {
assertThat(args.getOptionNames()).containsOnly("app.test");
assertThat(args.getOptionValues("app.test")).containsOnly("one");
}
}
Читайте также:
- Spring Boot: тестирование
- Spring Boot: тестирование, определение типа веб-приложения, определение конфигурации теста
- Тестирование Spring Boot приложений
Комментарии
Отправить комментарий