Как загрузить свойства из Application.properties с @extendwith (springextension.class)JAVA

Программисты JAVA общаются здесь
Anonymous
Как загрузить свойства из Application.properties с @extendwith (springextension.class)

Сообщение Anonymous »

Я пытаюсь выучить Spring Boot, и я пытался получить четкое понимание тестирования. Простой интегрированный тест с моими собственными бобами, и я также хочу загрузить свойства конфигурации, возможно ли использовать это с помощью @value? Он отлично работает с @springboottest, поэтому я знаю, что свойства загружаются нормально при полном приложении.misc.test-prop-value=testPropValue
< /code>
@ExtendWith(SpringExtension.class)
public class ConfigPropertiesTest {

@Value( value = "${misc.test-prop-value}")
private String testPropValue;

@Value("${some.non.existent.value}")
private String nonExistentValue;

@Test
void testNonExistentValue() {
assertNull(nonExistentValue); // Fails, the value is: ${some.non.existent.value}
}

@Test
public void testConfigProperties() {
assertEquals("testPropValue", testPropValue); //Fails, the value is: ${misc.test-prop-value}
}

}
< /code>
Почему @value собирает сам ключ?@ExtendWith(SpringExtension.class)
public class SpringExtensionBasicTest {

@Autowired
private ApplicationContext applicationContext;

@Test
void contextLoads() throws Exception {
//GenericApplicationContext instance:
System.out.println("Context instance: " + applicationContext.getClass());
assertNotNull(applicationContext); // Test passes
}

}
< /code>
Когда я расширяю базовый класс, в котором есть @springboottest,
Все работает нормально, он загружает контекст, и есть даже ошибка, когда некоторые. non.vensistent.value Product настолько очевидно, что никто даже не объяснил это, но я не получаю его. Значение, которое является нулевым с @springboottest, по -прежнему показывает тот же ключ: < /p>
@ExtendWith(SpringExtension.class)
@TestPropertySource(value = "classpath:application.properties")
public class ConfigPropertiesTest {

@Value( value = "${misc.test-prop-value}")
private String testPropValue;

@Value("${family.mother}")
private String mamaValue;

/**
* When a non-existent value is there,
* It is not null for some strange reason,
* But it still shows the key
*/
@Value("${some.non.existent.value}")
private String nonExistentValue;

@Test
void testNonExistentValue() {
//Still shows ${some.non.existent.value}
assertNull(nonExistentValue);
}

@Test
void testPropValue1() {
assertEquals("Mama-test", mamaValue); //Ok
}

@Test
public void testConfigProperties() {
assertEquals("testPropValue", testPropValue); //Ok
}

}


Подробнее здесь: https://stackoverflow.com/questions/790 ... ringextens

Вернуться в «JAVA»