类 StandaloneMockMvcBuilder

所有已实现的接口:
MockMvcBuilder, ConfigurableMockMvcBuilder<StandaloneMockMvcBuilder>

public class StandaloneMockMvcBuilder extends AbstractMockMvcBuilder<StandaloneMockMvcBuilder>
A MockMvcBuilder that accepts @Controller registrations thus allowing full control over the instantiation and initialization of controllers and their dependencies similar to plain unit tests, and also making it possible to test one controller at a time.

This builder creates the minimum infrastructure required by the DispatcherServlet to serve requests with annotated controllers and also provides methods for customization. The resulting configuration and customization options are equivalent to using MVC Java config except using builder style methods.

To configure view resolution, either select a "fixed" view to use for every request performed (see setSingleView(View)) or provide a list of ViewResolvers (see setViewResolvers(ViewResolver...)).

从以下版本开始:
4.0
作者:
Rossen Stoyanchev, Harry Yang
  • 字段详细资料

    • controllers

      private final List<Object> controllers
    • controllerAdvice

      @Nullable private List<Object> controllerAdvice
    • messageConverters

      private List<cn.taketoday.http.converter.HttpMessageConverter<?>> messageConverters
    • customArgumentResolvers

      private List<cn.taketoday.web.bind.resolver.ParameterResolvingStrategy> customArgumentResolvers
    • customReturnValueHandlers

      private List<cn.taketoday.web.ReturnValueHandler> customReturnValueHandlers
    • mappedInterceptors

      private final List<cn.taketoday.web.handler.MappedInterceptor> mappedInterceptors
    • validator

      @Nullable private cn.taketoday.validation.Validator validator
    • contentNegotiationManager

      @Nullable private cn.taketoday.web.accept.ContentNegotiationManager contentNegotiationManager
    • conversionService

      @Nullable private cn.taketoday.format.support.FormattingConversionService conversionService
    • handlerExceptionHandlers

      @Nullable private List<cn.taketoday.web.HandlerExceptionHandler> handlerExceptionHandlers
    • asyncRequestTimeout

      @Nullable private Long asyncRequestTimeout
    • viewResolvers

      @Nullable private List<cn.taketoday.web.view.ViewResolver> viewResolvers
    • localeResolver

      @Nullable private cn.taketoday.web.LocaleResolver localeResolver
    • flashMapManager

      @Nullable private cn.taketoday.web.view.RedirectModelManager flashMapManager
    • useTrailingSlashPatternMatch

      private boolean useTrailingSlashPatternMatch
    • placeholderValues

      private final Map<String,Object> placeholderValues
    • handlerMappingFactory

      private Supplier<cn.taketoday.web.handler.method.RequestMappingHandlerMapping> handlerMappingFactory
    • redirectModelManager

      @Nullable private cn.taketoday.web.view.RedirectModelManager redirectModelManager
    • returnValueHandlerManager

      @Nullable private cn.taketoday.web.handler.ReturnValueHandlerManager returnValueHandlerManager
    • parameterResolvingRegistry

      @Nullable private cn.taketoday.web.bind.resolver.ParameterResolvingRegistry parameterResolvingRegistry
  • 构造器详细资料

  • 方法详细资料

    • instantiateIfNecessary

      private static List<Object> instantiateIfNecessary(Object[] specified)
    • setControllerAdvice

      public StandaloneMockMvcBuilder setControllerAdvice(Object... controllerAdvice)
      Register one or more ControllerAdvice instances to be used in tests (specified Class will be turned into instance).

      Normally @ControllerAdvice are auto-detected as long as they're declared as Infra beans. However since the standalone setup does not load any Infra config, they need to be registered explicitly here instead much like controllers.

    • setMessageConverters

      public StandaloneMockMvcBuilder setMessageConverters(cn.taketoday.http.converter.HttpMessageConverter<?>... messageConverters)
      Set the message converters to use in argument resolvers and in return value handlers, which support reading and/or writing to the body of the request and response. If no message converters are added to the list, a default list of converters is added instead.
    • setValidator

      public StandaloneMockMvcBuilder setValidator(cn.taketoday.validation.Validator validator)
      Provide a custom Validator instead of the one created by default. The default implementation used, assuming JSR-303 is on the classpath, is LocalValidatorFactoryBean.
    • setConversionService

      public StandaloneMockMvcBuilder setConversionService(cn.taketoday.format.support.FormattingConversionService conversionService)
      Provide a conversion service with custom formatters and converters. If not set, a DefaultFormattingConversionService is used by default.
    • addInterceptors

      public StandaloneMockMvcBuilder addInterceptors(cn.taketoday.web.HandlerInterceptor... interceptors)
      Add interceptors mapped to all incoming requests.
    • addMappedInterceptors

      public StandaloneMockMvcBuilder addMappedInterceptors(@Nullable String[] pathPatterns, cn.taketoday.web.HandlerInterceptor... interceptors)
      Add interceptors mapped to a set of path patterns.
    • setContentNegotiationManager

      public StandaloneMockMvcBuilder setContentNegotiationManager(cn.taketoday.web.accept.ContentNegotiationManager manager)
      Set a ContentNegotiationManager.
    • setAsyncRequestTimeout

      public StandaloneMockMvcBuilder setAsyncRequestTimeout(long timeout)
      Specify the timeout value for async execution. In Web MVC Test, this value is used to determine how to long to wait for async execution to complete so that a test can verify the results synchronously.
      参数:
      timeout - the timeout value in milliseconds
    • setCustomArgumentResolvers

      public StandaloneMockMvcBuilder setCustomArgumentResolvers(cn.taketoday.web.bind.resolver.ParameterResolvingStrategy... argumentResolvers)
      Provide custom resolvers for controller method arguments.
    • setCustomReturnValueHandlers

      public StandaloneMockMvcBuilder setCustomReturnValueHandlers(cn.taketoday.web.handler.result.HandlerMethodReturnValueHandler... handlers)
      Provide custom handlers for controller method return values.
    • setHandlerExceptionHandlers

      public StandaloneMockMvcBuilder setHandlerExceptionHandlers(List<cn.taketoday.web.HandlerExceptionHandler> exceptionResolvers)
      Set the HandlerExceptionHandler types to use as a list.
    • setHandlerExceptionHandlers

      public StandaloneMockMvcBuilder setHandlerExceptionHandlers(cn.taketoday.web.HandlerExceptionHandler... exceptionResolvers)
      Set the HandlerExceptionHandler types to use as an array.
    • setViewResolvers

      public StandaloneMockMvcBuilder setViewResolvers(cn.taketoday.web.view.ViewResolver... resolvers)
      Set up view resolution with the given ViewResolvers. If not set, an InternalResourceViewResolver is used by default.
    • setSingleView

      public StandaloneMockMvcBuilder setSingleView(cn.taketoday.web.view.View view)
      Sets up a single ViewResolver that always returns the provided view instance. This is a convenient shortcut if you need to use one View instance only -- e.g. rendering generated content (JSON, XML, Atom).
    • setLocaleResolver

      public StandaloneMockMvcBuilder setLocaleResolver(cn.taketoday.web.LocaleResolver localeResolver)
      Provide a LocaleResolver instance. If not provided, the default one used is AcceptHeaderLocaleResolver.
    • setFlashMapManager

      public StandaloneMockMvcBuilder setFlashMapManager(cn.taketoday.web.view.RedirectModelManager flashMapManager)
      Provide a custom FlashMapManager instance. If not provided, SessionFlashMapManager is used by default.
    • setUseTrailingSlashPatternMatch

      public StandaloneMockMvcBuilder setUseTrailingSlashPatternMatch(boolean useTrailingSlashPatternMatch)
      Whether to match to URLs irrespective of the presence of a trailing slash. If enabled a method mapped to "/users" also matches to "/users/".
    • addPlaceholderValue

      public StandaloneMockMvcBuilder addPlaceholderValue(String name, Object value)
      In a standalone setup there is no support for placeholder values embedded in request mappings. This method allows manually provided placeholder values so they can be resolved. Alternatively consider creating a test that initializes a WebApplicationContext.
    • setCustomHandlerMapping

      public StandaloneMockMvcBuilder setCustomHandlerMapping(Supplier<cn.taketoday.web.handler.method.RequestMappingHandlerMapping> factory)
      Configure factory to create a custom RequestMappingHandlerMapping.
      参数:
      factory - the factory
    • setRedirectModelManager

      public StandaloneMockMvcBuilder setRedirectModelManager(@Nullable cn.taketoday.web.view.RedirectModelManager redirectModelManager)
    • setReturnValueHandlerManager

      public StandaloneMockMvcBuilder setReturnValueHandlerManager(cn.taketoday.web.handler.ReturnValueHandlerManager returnValueHandlerManager)
    • setParameterResolvingRegistry

      public StandaloneMockMvcBuilder setParameterResolvingRegistry(cn.taketoday.web.bind.resolver.ParameterResolvingRegistry parameterResolvingRegistry)
    • initWebAppContext

      protected cn.taketoday.web.servlet.WebApplicationContext initWebAppContext()
      从类复制的说明: AbstractMockMvcBuilder
      A method to obtain the WebApplicationContext to be passed to the DispatcherServlet. Invoked from AbstractMockMvcBuilder.build() before the MockMvc instance is created.
      指定者:
      initWebAppContext 在类中 AbstractMockMvcBuilder<StandaloneMockMvcBuilder>
    • registerMvcSingletons

      private void registerMvcSingletons(StubWebApplicationContext wac)
    • extendMvcSingletons

      protected Map<String,Object> extendMvcSingletons(@Nullable jakarta.servlet.ServletContext servletContext)
      This method could be used from a subclass to register additional Infra MVC infrastructure such as additional HandlerMapping, HandlerAdapter, and others.
      参数:
      servletContext - the ServletContext
      返回:
      a map with additional MVC infrastructure object instances