mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-08-29 03:06:45 +08:00
Polish "Honour base path from @WebAppConfiguration in @WebMvcTest"
See gh-16485
This commit is contained in:
parent
7340d546b8
commit
645514f848
@ -34,8 +34,7 @@ class WebMvcTestContextBootstrapper extends SpringBootTestContextBootstrapper {
|
||||
@Override
|
||||
protected MergedContextConfiguration processMergedContextConfiguration(MergedContextConfiguration mergedConfig) {
|
||||
MergedContextConfiguration processedMergedConfiguration = super.processMergedContextConfiguration(mergedConfig);
|
||||
return new WebMergedContextConfiguration(processedMergedConfiguration,
|
||||
getServletResourceBasePath(mergedConfig));
|
||||
return new WebMergedContextConfiguration(processedMergedConfiguration, determineResourceBasePath(mergedConfig));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -32,8 +32,8 @@ import org.springframework.test.context.web.WebAppConfiguration;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for {@link WebMvcTest} when loading resources via {@link ServletContext} with
|
||||
* {@link WebAppConfiguration}.
|
||||
* Tests for {@link WebMvcTest @WebMvcTest} when loading resources via the
|
||||
* {@link ServletContext} with {@link WebAppConfiguration @WebAppConfiguration}.
|
||||
*
|
||||
* @author Lorenzo Dee
|
||||
*/
|
||||
@ -46,7 +46,7 @@ public class WebMvcTestWithWebAppConfigurationTests {
|
||||
private ServletContext servletContext;
|
||||
|
||||
@Test
|
||||
public void getResourceLocation() throws Exception {
|
||||
public void whenBasePathIsCustomizedResourcesCanBeLoadedFromThatLocation() throws Exception {
|
||||
testResource("/inwebapp", "src/test/webapp");
|
||||
testResource("/inmetainfresources", "/META-INF/resources");
|
||||
testResource("/inresources", "/resources");
|
||||
|
@ -154,8 +154,7 @@ public class SpringBootTestContextBootstrapper extends DefaultTestContextBootstr
|
||||
WebApplicationType webApplicationType = getWebApplicationType(mergedConfig);
|
||||
if (webApplicationType == WebApplicationType.SERVLET
|
||||
&& (webEnvironment.isEmbedded() || webEnvironment == WebEnvironment.MOCK)) {
|
||||
mergedConfig = new WebMergedContextConfiguration(mergedConfig,
|
||||
getServletResourceBasePath(mergedConfig));
|
||||
mergedConfig = new WebMergedContextConfiguration(mergedConfig, determineResourceBasePath(mergedConfig));
|
||||
}
|
||||
else if (webApplicationType == WebApplicationType.REACTIVE
|
||||
&& (webEnvironment.isEmbedded() || webEnvironment == WebEnvironment.MOCK)) {
|
||||
@ -187,7 +186,15 @@ public class SpringBootTestContextBootstrapper extends DefaultTestContextBootstr
|
||||
return WebApplicationType.SERVLET;
|
||||
}
|
||||
|
||||
protected String getServletResourceBasePath(MergedContextConfiguration configuration) {
|
||||
/**
|
||||
* Determines the resource base path for web applications using the value of
|
||||
* {@link WebAppConfiguration @WebAppConfiguration}, if any, on the test class of the
|
||||
* given {@code configuration}. Defaults to {@code src/main/webapp} in its absence.
|
||||
* @param configuration the configure to examine
|
||||
* @return the resource base path
|
||||
* @since 2.1.6
|
||||
*/
|
||||
protected String determineResourceBasePath(MergedContextConfiguration configuration) {
|
||||
WebAppConfiguration webAppConfiguration = AnnotatedElementUtils
|
||||
.findMergedAnnotation(configuration.getTestClass(), WebAppConfiguration.class);
|
||||
return (webAppConfiguration != null) ? webAppConfiguration.value() : "src/main/webapp";
|
||||
|
Loading…
Reference in New Issue
Block a user