Проблема в том, что вы пытаетесь использовать объект FeatureConfig из контекста приложения. Вы не инициализировали контекст приложения. Когда вы используете аннотацию @Autowire, вы отображаете поле featureConfig с экземпляром класса FeatureConfig, расположенным в контексте приложения. Чтобы обойти эту ошибку, вам нужно инициализировать контекст приложения.
Прежде всего, создайте класс stati c внутри тестового класса, который поможет нам не загружать весь контекст приложения. Потому что для этого теста вам не нужно загружать все приложение. Прежде всего, создайте класс stati c внутри тестового класса, который поможет нам не загружать весь контекст приложения. Потому что для этого теста вам не нужно загружать все приложение.
@EnableConfigurationProperties(FeatureConfig.class)
public static class TestConfiguration {
}
После этого вы запускаете контекст приложения, но с передачей в качестве конфигурации созданного вами класса stati c. Это сделано для того, чтобы не загружать весь контекст приложения.
@SpringBootTest(classes = { FeatureConfigTest.TestConfiguration class })
Скопируйте и вставьте указанные ниже изменения в свой тестовый класс, и все должно работать нормально.
@RunWith(SpringRunner.class)
@SpringBootTest(classes = { FeatureConfigTest.TestConfiguration class })
public class FeatureConfigTest {
@Autowired
private FeatureConfig featureConfig;
@Test
public void testgetFeatureUrl() {
String expected ="featureUrl";
assertEquals(expected,featureConfig.getFeatureUrl());
}
@EnableConfigurationProperties(FeatureConfig.class)
public static class TestConfiguration {
}
}