mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-09-03 03:43:21 +08:00
Polish test property source changes made in 69b08291
TestPropertySourcesInitializer needs to be ordered with a high precedence, specifically higher than ContextIdApplicationContextInitializer, to ensure that any properties used in setting the context’s id are available in the environment. Closes gh-4828
This commit is contained in:
parent
9b121dcbaa
commit
a37ae5d556
@ -31,6 +31,7 @@ import org.springframework.boot.test.util.EnvironmentTestUtils;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.core.SpringVersion;
|
||||
import org.springframework.core.annotation.AnnotatedElementUtils;
|
||||
import org.springframework.core.env.ConfigurableEnvironment;
|
||||
@ -245,8 +246,9 @@ public class SpringBootContextLoader extends AbstractContextLoader {
|
||||
/**
|
||||
* {@link ApplicationContextInitializer} to set up test property sources.
|
||||
*/
|
||||
private static class TestPropertySourcesInitializer
|
||||
implements ApplicationContextInitializer<ConfigurableApplicationContext> {
|
||||
|
||||
private static class TestPropertySourcesInitializer implements
|
||||
ApplicationContextInitializer<ConfigurableApplicationContext>, Ordered {
|
||||
|
||||
private final String[] propertySourceLocations;
|
||||
|
||||
@ -266,6 +268,11 @@ public class SpringBootContextLoader extends AbstractContextLoader {
|
||||
this.inlinedProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOrder() {
|
||||
return Ordered.HIGHEST_PRECEDENCE + 10;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -55,8 +55,8 @@ public class SpringApplicationIntegrationTestPropertyLocationTests {
|
||||
public void loadedProperties() throws Exception {
|
||||
assertThat(this.environment.getProperty("value1")).isEqualTo("123");
|
||||
assertThat(this.environment.getProperty("value2")).isEqualTo("456");
|
||||
assertThat(this.environment.getProperty("annotation-referenced"))
|
||||
.isEqualTo("fromfile");
|
||||
assertThat(this.environment.getProperty("property-source-location"))
|
||||
.isEqualTo("baz");
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@ -68,14 +68,14 @@ public class SpringApplicationIntegrationTestPropertyLocationTests {
|
||||
@Value("${value2}")
|
||||
private String value2;
|
||||
|
||||
@Value("${annotation-referenced}")
|
||||
@Value("${property-source-location}")
|
||||
private String annotationReferenced;
|
||||
|
||||
@PostConstruct
|
||||
void checkValues() {
|
||||
assertThat(this.value1).isEqualTo("123");
|
||||
assertThat(this.value2).isEqualTo("456");
|
||||
assertThat(this.annotationReferenced).isEqualTo("fromfile");
|
||||
assertThat(this.annotationReferenced).isEqualTo("baz");
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user