Testing Spring Boot Configuration Classes
The class to test @Configuration @ConfigurationProperties(prefix = "scheduler") @Data public class SchedulerConfig { private String rate; private final Activetime activetime = new Activetime(); @Data public static class Activetime { private int starts; private int ends; } } The unit test class SchedulerConfigTest { private final ApplicationContextRunner contextRunner = new ApplicationContextRunner(); @EnableConfigurationProperties(SchedulerConfig.class) static class DummyConfigurationProps { } @Test void shouldConfigureScheduler() { this.contextRunner .withUserConfiguration(DummyConfigurationProps.class) .withPropertyValues("scheduler.rate=42","scheduler.activetime.starts=6","scheduler.activetime.ends=22") .run(context -> { SchedulerConfig schedulerConfig = context.getBean(SchedulerConfig.class); assertThat(schedulerConfig).isNotNull(); assertThat(schedulerConfig.getRate()).isEqualTo("42"); assertThat(schedulerConfig.getActivetime().getStarts()).isEqualTo(6); assertThat(schedulerConfig.getActivetime().getEnds()).isEqualTo(22); }); } }