2016-05-27 10 views
0

Ich habe eine Spring WebApp mit @Value Annotationen, die von einem PropertySourcesPlaceholderConfigurer gefüllt werden. Die Anmerkungen werden in meiner Webanwendung korrekt aufgelöst.@Value Annotation löst in App, aber nicht im Unit Test

Wenn ich jedoch einen Komponententest mit SpringJunit4ClassRunner und ein spezifisches Bean-Profil für Komponententests ausführe, bekomme ich die Ausnahme "Platzhalter xxx in String $ {xxx}" nicht lösen, egal ob ich den Test von Eclipse aus führe oder von Maven.

Interessanterweise ist die PropertySourcesPlcHlCfg. wird initialisiert (richtig und nur einmal) und findet die Eigenschaftendatei, als ob ich sie umbenenne, bekomme ich eine FileNotFoundException.

Was könnte hier schiefgehen?

Danke!

Antwort

1

können Sie versuchen, mit (im Fall von Spring 4)

@TestPropertySource(value="classpath:/test.properties") 

für eine bestimmte Datei für JUnit-Test geladen.

Alternativ können Sie auch versuchen, eine Bohne PropertySourcesPlaceholderConfigurer in Ihrer Konfiguration zu schaffen

@Bean 
public static PropertySourcesPlaceholderConfigurer propertiesResolver() { 
    return new PropertySourcesPlaceholderConfigurer(); 
}