Я пытаюсь выучить 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
Как загрузить свойства из Application.properties с @extendwith (springextension.class) ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение