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);
        });
    }

}