Class AbstractMockMvcBuilder<B extends AbstractMockMvcBuilder<B>>
- java.lang.Object
- org.springframework.test.web.servlet.MockMvcBuilderSupport
- org.springframework.test.web.servlet.setup.AbstractMockMvcBuilder<B>
- Type Parameters:
B- a self reference to the builder type
- All Implemented Interfaces:
MockMvcBuilder,ConfigurableMockMvcBuilder<B>
- Direct Known Subclasses:
DefaultMockMvcBuilder,StandaloneMockMvcBuilder
public abstract class AbstractMockMvcBuilder<B extends AbstractMockMvcBuilder<B>> extends MockMvcBuilderSupport implements ConfigurableMockMvcBuilder<B>
Abstract implementation ofMockMvcBuilderwith common methods for configuring filters, default request properties, global expectations and global result actions.Subclasses can use different strategies to prepare the Spring
WebApplicationContextthat will be passed to theDispatcherServlet.- Since:
- 4.0
- Author:
- Rossen Stoyanchev, Stephane Nicoll
Constructor Summary
Constructors Constructor Description AbstractMockMvcBuilder()
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description <T extends B>
TaddDispatcherServletCustomizer(DispatcherServletCustomizer customizer)<T extends B>
TaddFilter(Filter filter, String... urlPatterns)Add a filter mapped to a specific set of patterns.<T extends B>
TaddFilters(Filter... filters)Add filters mapped to any request (i.e.<T extends B>
TalwaysDo(ResultHandler resultHandler)Define a global action that should always be applied to every response.<T extends B>
TalwaysExpect(ResultMatcher resultMatcher)Define a global expectation that should always be applied to every response.<T extends B>
Tapply(MockMvcConfigurer configurer)Add aMockMvcConfigurerthat automates MockMvc setup and configures it for some specific purpose (e.g.MockMvcbuild()Build aMockMvcinstance.<T extends B>
TdefaultRequest(RequestBuilder requestBuilder)Define default request properties that should be merged into all performed requests.<T extends B>
TdispatchOptions(boolean dispatchOptions)Whether to enable the DispatcherServlet propertydispatchOptionsRequestwhich allows processing of HTTP OPTIONS requests.protected abstract WebApplicationContextinitWebAppContext()A method to obtain theWebApplicationContextto be passed to theDispatcherServlet.protected <T extends B>
Tself()Methods inherited from class org.springframework.test.web.servlet.MockMvcBuilderSupport
createMockMvc
Constructor Detail
AbstractMockMvcBuilder
public AbstractMockMvcBuilder()
Method Detail
addFilters
public final <T extends B> T addFilters(Filter... filters)
Description copied from interface:ConfigurableMockMvcBuilderAdd filters mapped to any request (i.e. "/*"). For example:mockMvcBuilder.addFilters(springSecurityFilterChain);
is the equivalent of the following web.xml configuration:
<filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>Filters will be invoked in the order in which they are provided.
- Specified by:
addFiltersin interfaceConfigurableMockMvcBuilder<B extends AbstractMockMvcBuilder<B>>- Parameters:
filters- the filters to add
addFilter
public final <T extends B> T addFilter(Filter filter, String... urlPatterns)
Description copied from interface:ConfigurableMockMvcBuilderAdd a filter mapped to a specific set of patterns. For example:mockMvcBuilder.addFilters(myResourceFilter, "/resources/*");
is the equivalent of:
<filter-mapping> <filter-name>myResourceFilter</filter-name> <url-pattern>/resources/*</url-pattern> </filter-mapping>Filters will be invoked in the order in which they are provided.
- Specified by:
addFilterin interfaceConfigurableMockMvcBuilder<B extends AbstractMockMvcBuilder<B>>- Parameters:
filter- the filter to addurlPatterns- the URL patterns to map to; if empty, "/*" is used by default
defaultRequest
public final <T extends B> T defaultRequest(RequestBuilder requestBuilder)
Description copied from interface:ConfigurableMockMvcBuilderDefine default request properties that should be merged into all performed requests. In effect this provides a mechanism for defining common initialization for all requests such as the content type, request parameters, session attributes, and any other request property.Properties specified at the time of performing a request override the default properties defined here.
- Specified by:
defaultRequestin interfaceConfigurableMockMvcBuilder<B extends AbstractMockMvcBuilder<B>>- Parameters:
requestBuilder- a RequestBuilder; see static factory methods inMockMvcRequestBuilders
alwaysExpect
public final <T extends B> T alwaysExpect(ResultMatcher resultMatcher)
Description copied from interface:ConfigurableMockMvcBuilderDefine a global expectation that should always be applied to every response. For example, status code 200 (OK), content type"application/json", etc.- Specified by:
alwaysExpectin interfaceConfigurableMockMvcBuilder<B extends AbstractMockMvcBuilder<B>>- Parameters:
resultMatcher- a ResultMatcher; see static factory methods inMockMvcResultMatchers
alwaysDo
public final <T extends B> T alwaysDo(ResultHandler resultHandler)
Description copied from interface:ConfigurableMockMvcBuilderDefine a global action that should always be applied to every response. For example, writing detailed information about the performed request and resulting response toSystem.out.- Specified by:
alwaysDoin interfaceConfigurableMockMvcBuilder<B extends AbstractMockMvcBuilder<B>>- Parameters:
resultHandler- a ResultHandler; see static factory methods inMockMvcResultHandlers
addDispatcherServletCustomizer
public final <T extends B> T addDispatcherServletCustomizer(DispatcherServletCustomizer customizer)
dispatchOptions
public final <T extends B> T dispatchOptions(boolean dispatchOptions)
Description copied from interface:ConfigurableMockMvcBuilderWhether to enable the DispatcherServlet propertydispatchOptionsRequestwhich allows processing of HTTP OPTIONS requests.- Specified by:
dispatchOptionsin interfaceConfigurableMockMvcBuilder<B extends AbstractMockMvcBuilder<B>>
apply
public final <T extends B> T apply(MockMvcConfigurer configurer)
Description copied from interface:ConfigurableMockMvcBuilderAdd aMockMvcConfigurerthat automates MockMvc setup and configures it for some specific purpose (e.g. security).There is a built-in
SharedHttpSessionConfigurerthat can be used to re-use the HTTP session across requests. 3rd party frameworks like Spring Security also use this mechanism to provide configuration shortcuts.- Specified by:
applyin interfaceConfigurableMockMvcBuilder<B extends AbstractMockMvcBuilder<B>>- See Also:
SharedHttpSessionConfigurer
build
public final MockMvc build()
Build aMockMvcinstance.- Specified by:
buildin interfaceMockMvcBuilder
initWebAppContext
protected abstract WebApplicationContext initWebAppContext()