Я хотел бы создать интеграционный тест, в котором Spring Boot будет считывать значение из файла .properties, используя @Value аннотация.
Но каждый раз, когда я бегу тест мое утверждение не потому, что весна не может прочитать значение:Тесты интеграции Spring Boot не читают файлы свойств
org.junit.ComparisonFailure:
Expected :works!
Actual :${test}
Мой тест:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {WebTests.ConfigurationClass.class, WebTests.ClassToTest.class})
public class WebTests {
@Configuration
@ActiveProfiles("test")
static class ConfigurationClass {}
@Component
static class ClassToTest{
@Value("${test}")
private String test;
}
@Autowired
private ClassToTest config;
@Test
public void testTransferService() {
Assert.assertEquals(config.test, "works!");
}
}
application-test.properties под Src/основной/ресурс пакет содержит:
test=works!
В чем может быть причина этого поведения и как его исправить?
Любая помощь очень ценится.
Что должно выглядеть «ClassToTest»? У вас есть '@ SpringBootTest' где угодно? Угадайте, что ваши тесты не выполняются как тест Spring Boot, поэтому свойства приложения не загружаются. Если это происходило, установка активного профиля на 'test' должна была быть достаточной для загрузки' application-test.properties' –