Ich möchte einen Integrationstest erstellen, in dem Spring Boot einen Wert aus der Datei .properties unter Verwendung von @Value Annotation liest.
Aber jedes Mal, wenn ich renne Test meiner Behauptung fehlschlägt, weil Frühling nicht in der Lage ist, den Wert zu lesen:Spring Boot-Integrationstests liest keine Eigenschaftendateien
org.junit.ComparisonFailure:
Expected :works!
Actual :${test}
Mein 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 unter src/main/Ressourcen Paket enthält:
test=works!
Was kann der Grund für dieses Verhalten sein und wie kann ich es beheben?
Jede Hilfe sehr geschätzt.
Wie sieht 'ClassToTest' aus? Hast du '@ SpringBootTest' irgendwo? Es würde vermuten, dass Ihre Tests nicht als Spring-Boot-Test ausgeführt werden, sodass die Anwendungseigenschaften nicht geladen werden. Wenn dies der Fall wäre, hätte das Setzen des aktiven Profils auf "test" ausreichen müssen, damit "application-test.properties" geladen werden kann –