Document testing in "New in Spring 3.2" sect.
This commit adds documentation to the "New Features and Enhancements in Spring 3.2" section of the reference manual regarding new testing features. Issue: SPR-9941
This commit is contained in:
parent
a1053d4364
commit
d4c55838ad
|
@ -1,22 +1,20 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<chapter xml:id="new-in-3.2"
|
<chapter version="5.0"
|
||||||
xmlns="http://docbook.org/ns/docbook" version="5.0"
|
xsi:schemaLocation="http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd http://www.w3.org/1999/xlink http://www.docbook.org/xml/5.0/xsd/xlink.xsd"
|
||||||
|
xml:id="new-in-3.2" xmlns="http://docbook.org/ns/docbook"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
xmlns:xl="http://www.w3.org/1999/xlink"
|
xmlns:xl="http://www.w3.org/1999/xlink"
|
||||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:ns="http://docbook.org/ns/docbook">
|
||||||
xsi:schemaLocation="
|
|
||||||
http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd
|
|
||||||
http://www.w3.org/1999/xlink http://www.docbook.org/xml/5.0/xsd/xlink.xsd">
|
|
||||||
<title>New Features and Enhancements in Spring 3.2</title>
|
<title>New Features and Enhancements in Spring 3.2</title>
|
||||||
|
|
||||||
<section xml:id="new-in-3.2-features-overview">
|
|
||||||
<title>Overview of new features</title>
|
|
||||||
|
|
||||||
<section xml:id="new-in-3.2-webmvc-async">
|
<section xml:id="new-in-3.2-webmvc-async">
|
||||||
<title>Support for Servlet 3 based asynchronous request processing</title>
|
<title>Support for Servlet 3 based asynchronous request processing</title>
|
||||||
|
|
||||||
<para>The Spring MVC programming model now provides explicit Servlet 3 async support.
|
<para>The Spring MVC programming model now provides explicit Servlet 3
|
||||||
<interfacename>@RequestMapping</interfacename> methods can return one of:</para>
|
async support. <interfacename>@RequestMapping</interfacename> methods can
|
||||||
|
return one of:</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -24,202 +22,241 @@
|
||||||
complete processing in a separate thread managed by a task executor
|
complete processing in a separate thread managed by a task executor
|
||||||
within Spring MVC.</para>
|
within Spring MVC.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><classname>org.springframework.web.context.request.async.DeferredResult</classname>
|
<para><classname>org.springframework.web.context.request.async.DeferredResult</classname>
|
||||||
to complete processing at a later time from a thread not known to
|
to complete processing at a later time from a thread not known to
|
||||||
Spring MVC, e.g. in response to some external event (JSM, AMQP, etc.)</para>
|
Spring MVC — for example, in response to some external event (JMS,
|
||||||
|
AMQP, etc.)</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><classname>org.springframework.web.context.request.async.AsyncTask</classname>
|
<para><classname>org.springframework.web.context.request.async.AsyncTask</classname>
|
||||||
to wrap a <interfacename>Callable</interfacename> and
|
to wrap a <interfacename>Callable</interfacename> and customize the
|
||||||
customize the timeout value or the task executor to use.</para>
|
timeout value or the task executor to use.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<para>See <link
|
<para>See <link
|
||||||
xl:href="http://blog.springsource.org/2012/05/06/spring-mvc-3-2-preview-introducing-servlet-3-async-support/">
|
xl:href="http://blog.springsource.org/2012/05/06/spring-mvc-3-2-preview-introducing-servlet-3-async-support/">
|
||||||
Introducing Servlet 3 Async Support</link> (SpringSource team blog).</para>
|
Introducing Servlet 3 Async Support</link> (SpringSource team
|
||||||
|
blog).</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="new-in-3.2-spring-mvc-test">
|
<section xml:id="new-in-3.2-spring-mvc-test">
|
||||||
<title>Spring MVC Test framework</title>
|
<title>Spring MVC Test framework</title>
|
||||||
|
|
||||||
<para>First-class support for testing Spring MVC applications with a
|
<para>First-class support for testing Spring MVC applications with a
|
||||||
fluent API and without a servlet container. Server-side tests involve
|
fluent API and without a Servlet container. Server-side tests involve use
|
||||||
use of the <classname>DispatcherServlet</classname> while client-side
|
of the <classname>DispatcherServlet</classname> while client-side REST
|
||||||
REST tests rely on the <classname>RestTemplate</classname>.
|
tests rely on the <classname>RestTemplate</classname>. See <xref
|
||||||
See <xref linkend="spring-mvc-test-framework"/>.
|
linkend="spring-mvc-test-framework" />.</para>
|
||||||
</para>
|
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="new-in-3.2-webmvc-content-negotiation">
|
<section xml:id="new-in-3.2-webmvc-content-negotiation">
|
||||||
<title>Content negotiation improvements</title>
|
<title>Content negotiation improvements</title>
|
||||||
|
|
||||||
<para>A <interfacename>ContentNeogtiationStrategy</interfacename> is now
|
<para>A <interfacename>ContentNeogtiationStrategy</interfacename> is now
|
||||||
available for resolving the requested media types from an incoming request.
|
available for resolving the requested media types from an incoming
|
||||||
The available implementations are based on path extension, request parameter,
|
request. The available implementations are based on path extension,
|
||||||
'Accept' header, and a fixed default content type. Equivalent options were
|
request parameter, 'Accept' header, and a fixed default content type.
|
||||||
previously available only in the ContentNegotiatingViewResolver but are now
|
Equivalent options were previously available only in the
|
||||||
available throughout.</para>
|
ContentNegotiatingViewResolver but are now available throughout.</para>
|
||||||
|
|
||||||
<para><classname>ContentNegotiationManager</classname> is the central class to
|
<para><classname>ContentNegotiationManager</classname> is the central
|
||||||
use when configuring content negotiation options. It accepts one or
|
class to use when configuring content negotiation options. It accepts one
|
||||||
more ContentNeogtiationStrategy instances and delegates to them. It can be
|
or more ContentNeogtiationStrategy instances and delegates to them. It can
|
||||||
plugged into <classname>RequestMappingHandlerMapping</classname>,
|
be plugged into <classname>RequestMappingHandlerMapping</classname>,
|
||||||
<classname>RequestMappingHandlerAdapter</classname>,
|
<classname>RequestMappingHandlerAdapter</classname>,
|
||||||
<classname>ExceptionHandlerExceptionResolver</classname>,
|
<classname>ExceptionHandlerExceptionResolver</classname>, and
|
||||||
and <classname>ContentNegotiatingViewResolver</classname>. The MVC
|
<classname>ContentNegotiatingViewResolver</classname>. The MVC namespace
|
||||||
namespace and the MVC Java config provide convenient options to configure
|
and the MVC JavaConfig provide convenient options to configure all
|
||||||
all that.</para>
|
that.</para>
|
||||||
|
|
||||||
<para>The introduction of <classname>ContentNegotiationManger</classname>
|
<para>The introduction of <classname>ContentNegotiationManger</classname>
|
||||||
also enables smart suffix pattern matching for incoming requests.
|
also enables smart suffix pattern matching for incoming requests. See
|
||||||
See <link xl:href="https://github.com/SpringSource/spring-framework/commit/4fd7645">
|
<link
|
||||||
commit message</link></para>
|
xl:href="https://github.com/SpringSource/spring-framework/commit/4fd7645">commit
|
||||||
|
message.</link></para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="new-in-3.2-webmvc-controller-advice">
|
<section xml:id="new-in-3.2-webmvc-controller-advice">
|
||||||
<title><interfacename>@ControllerAdvice</interfacename> annotation</title>
|
<title><interfacename>@ControllerAdvice</interfacename> annotation</title>
|
||||||
|
|
||||||
<para>Classes annotated with <interfacename>@ControllerAdvice</interfacename>
|
<para>Classes annotated with
|
||||||
can contain <interfacename>@ExceptionHandler</interfacename>,
|
<interfacename>@ControllerAdvice</interfacename> can contain
|
||||||
|
<interfacename>@ExceptionHandler</interfacename>,
|
||||||
<interfacename>@InitBinder</interfacename>, and
|
<interfacename>@InitBinder</interfacename>, and
|
||||||
<interfacename>@ModelAttribute</interfacename> methods and those will apply
|
<interfacename>@ModelAttribute</interfacename> methods and those will
|
||||||
to <interfacename>@RequestMapping</interfacename> methods across controller
|
apply to <interfacename>@RequestMapping</interfacename> methods across
|
||||||
hierarchies as opposed to the controller hierarchy within which they are declared.
|
controller hierarchies as opposed to the controller hierarchy within which
|
||||||
<interfacename>@ControllerAdvice</interfacename> is
|
they are declared. <interfacename>@ControllerAdvice</interfacename> is a
|
||||||
a component annotation allowing implementation classes to be auto-detected
|
component annotation allowing implementation classes to be auto-detected
|
||||||
through classpath scanning.</para>
|
through classpath scanning.</para>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="new-in-3.2-matrix-variables">
|
<section xml:id="new-in-3.2-matrix-variables">
|
||||||
<title>Matrix variables</title>
|
<title>Matrix variables</title>
|
||||||
|
|
||||||
<para>A new <interfacename>@MatrixVariable</interfacename> annotation
|
<para>A new <interfacename>@MatrixVariable</interfacename> annotation adds
|
||||||
adds support for extracting matrix variables from the request URI.
|
support for extracting matrix variables from the request URI. For more
|
||||||
For more details see <xref linkend="mvc-ann-matrix-variables"/>.</para>
|
details see <xref linkend="mvc-ann-matrix-variables" />.</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="new-in-3.2-dispatcher-servlet-initializer">
|
<section xml:id="new-in-3.2-dispatcher-servlet-initializer">
|
||||||
<title>Abstract base class for code-based Servlet 3+ container initialization</title>
|
<title>Abstract base class for code-based Servlet 3+ container
|
||||||
|
initialization</title>
|
||||||
|
|
||||||
<para>An abstract base class implementation of the
|
<para>An abstract base class implementation of the
|
||||||
<interfacename>WebApplicationInitializer</interfacename> interface is provided to
|
<interfacename>WebApplicationInitializer</interfacename> interface is
|
||||||
simplify code-based registration of a DispatcherServlet and filters
|
provided to simplify code-based registration of a DispatcherServlet and
|
||||||
mapped to it. The new class is named
|
filters mapped to it. The new class is named
|
||||||
<classname>AbstractDispatcherServletInitializer</classname> and its
|
<classname>AbstractDispatcherServletInitializer</classname> and its
|
||||||
sub-class <classname>AbstractAnnotationConfigDispatcherServletInitializer</classname>
|
sub-class
|
||||||
can be used with Java-based Spring configuration.
|
<classname>AbstractAnnotationConfigDispatcherServletInitializer</classname>
|
||||||
For more details see <xref linkend="mvc-container-config"/>.</para>
|
can be used with Java-based Spring configuration. For more details see
|
||||||
|
<xref linkend="mvc-container-config" />.</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="new-in-3.2-webmvc-exception-handler-support">
|
<section xml:id="new-in-3.2-webmvc-exception-handler-support">
|
||||||
<title><classname>ResponseEntityExceptionHandler</classname> class</title>
|
<title><classname>ResponseEntityExceptionHandler</classname> class</title>
|
||||||
|
|
||||||
<para>A convenient base class with an
|
<para>A convenient base class with an
|
||||||
<interfacename>@ExceptionHandler</interfacename>
|
<interfacename>@ExceptionHandler</interfacename> method that handles
|
||||||
method that handles standard Spring MVC exceptions and returns a
|
standard Spring MVC exceptions and returns a
|
||||||
<classname>ResponseEntity</classname> that allowing customizing and writing
|
<classname>ResponseEntity</classname> that allowing customizing and
|
||||||
the response with HTTP message converters. This servers as an alternative
|
writing the response with HTTP message converters. This servers as an
|
||||||
to the <classname>DefaultHandlerExceptionResolver</classname>, which does
|
alternative to the <classname>DefaultHandlerExceptionResolver</classname>,
|
||||||
the same but returns a <classname>ModelAndView</classname> instead.</para>
|
which does the same but returns a <classname>ModelAndView</classname>
|
||||||
|
instead.</para>
|
||||||
<para>See the revised <xref linkend="mvc-exceptionhandlers"/>
|
|
||||||
including information on customizing the default Servlet container error page.</para>
|
|
||||||
|
|
||||||
|
<para>See the revised <xref linkend="mvc-exceptionhandlers" /> including
|
||||||
|
information on customizing the default Servlet container error
|
||||||
|
page.</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="new-in-3.2-webmvc-generic-types-rest-template">
|
<section xml:id="new-in-3.2-webmvc-generic-types-rest-template">
|
||||||
<title>Support for generic types in the <classname>RestTemplate</classname> and in
|
<title>Support for generic types in the
|
||||||
|
<classname>RestTemplate</classname> and in
|
||||||
<interfacename>@RequestBody</interfacename> arguments</title>
|
<interfacename>@RequestBody</interfacename> arguments</title>
|
||||||
|
|
||||||
<para>The <classname>RestTemplate</classname> can now read an HTTP
|
<para>The <classname>RestTemplate</classname> can now read an HTTP
|
||||||
response to a generic type (e.g. <code>List<Account></code>).
|
response to a generic type (e.g. <code>List<Account></code>). There
|
||||||
There are three new <code>exchange()</code> methods that accept
|
are three new <code>exchange()</code> methods that accept
|
||||||
<classname>ParameterizedTypeReference</classname>, a
|
<classname>ParameterizedTypeReference</classname>, a new class that
|
||||||
new class that enables capturing and passing generic type info.</para>
|
enables capturing and passing generic type info.</para>
|
||||||
|
|
||||||
<para>In support of this feature, the <interfacename>HttpMessageConverter</interfacename>
|
<para>In support of this feature, the
|
||||||
is extended by <interfacename>GenericHttpMessageConverter</interfacename>
|
<interfacename>HttpMessageConverter</interfacename> is extended by
|
||||||
adding a method for reading content given a specified parameterized type.
|
<interfacename>GenericHttpMessageConverter</interfacename> adding a method
|
||||||
The new interface is implemented by the
|
for reading content given a specified parameterized type. The new
|
||||||
<classname>MappingJacksonHttpMessageConverter</classname> and also
|
interface is implemented by the
|
||||||
by a new <classname>Jaxb2CollectionHttpMessageConverter</classname> that can
|
<classname>MappingJacksonHttpMessageConverter</classname> and also by a
|
||||||
|
new <classname>Jaxb2CollectionHttpMessageConverter</classname> that can
|
||||||
read read a generic <interfacename>Collection</interfacename> where the
|
read read a generic <interfacename>Collection</interfacename> where the
|
||||||
generic type is a JAXB type annotated with
|
generic type is a JAXB type annotated with
|
||||||
<interfacename>@XmlRootElement</interfacename> or
|
<interfacename>@XmlRootElement</interfacename> or
|
||||||
<interfacename>@XmlType</interfacename>.</para>
|
<interfacename>@XmlType</interfacename>.</para>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="new-in-3.2-webmvc-jackson-json">
|
<section xml:id="new-in-3.2-webmvc-jackson-json">
|
||||||
<title>Jackson JSON 2 and related improvements</title>
|
<title>Jackson JSON 2 and related improvements</title>
|
||||||
|
|
||||||
<para>The Jackson Json 2 library is now supported. Due to packaging changes in
|
<para>The Jackson JSON 2 library is now supported. Due to packaging
|
||||||
the Jackson library, there are separate classes in Spring MVC as well. Those are
|
changes in the Jackson library, there are separate classes in Spring MVC
|
||||||
|
as well. Those are
|
||||||
<classname>MappingJackson2HttpMessageConverter</classname> and
|
<classname>MappingJackson2HttpMessageConverter</classname> and
|
||||||
<classname>MappingJackson2JsonView</classname>.
|
<classname>MappingJackson2JsonView</classname>. Other related
|
||||||
Other related configuration improvements include support for
|
configuration improvements include support for pretty printing as well as
|
||||||
pretty printing as well as a
|
a <classname>JacksonObjectMapperFactoryBean</classname> for convenient
|
||||||
<classname>JacksonObjectMapperFactoryBean</classname> for convenient
|
customization of an <classname>ObjectMapper</classname> in XML
|
||||||
customization of an <classname>ObjectMapper</classname> in
|
configuration.</para>
|
||||||
XML configuration.</para>
|
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="new-in-3.2-webmvc-request-body-arg-with-binding-result">
|
<section xml:id="new-in-3.2-webmvc-request-body-arg-with-binding-result">
|
||||||
<title><interfacename>@RequestBody</interfacename> improvements</title>
|
<title><interfacename>@RequestBody</interfacename> improvements</title>
|
||||||
|
|
||||||
<para>An <interfacename>@RequestBody</interfacename> or an
|
<para>An <interfacename>@RequestBody</interfacename> or an
|
||||||
<interfacename>@RequestPart</interfacename> argument can now be followed by an
|
<interfacename>@RequestPart</interfacename> argument can now be followed
|
||||||
<interfacename>Errors</interfacename> argument making it possible to handle
|
by an <interfacename>Errors</interfacename> argument making it possible to
|
||||||
validation errors (as a result of an <interfacename>@Valid</interfacename>
|
handle validation errors (as a result of an
|
||||||
annotation) locally within the <interfacename>@RequestMapping</interfacename> method.
|
<interfacename>@Valid</interfacename> annotation) locally within the
|
||||||
<interfacename>@RequestBody</interfacename> now also supports
|
<interfacename>@RequestMapping</interfacename> method.
|
||||||
a required flag.</para>
|
<interfacename>@RequestBody</interfacename> now also supports a required
|
||||||
|
flag.</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="new-in-3.2-webmvc-http-patch">
|
<section xml:id="new-in-3.2-webmvc-http-patch">
|
||||||
<title>HTTP PATCH method</title>
|
<title>HTTP PATCH method</title>
|
||||||
|
|
||||||
<para>The HTTP request method <code>PATCH</code> may now be used in
|
<para>The HTTP request method <code>PATCH</code> may now be used in
|
||||||
<interfacename>@RequestMapping</interfacename> methods as well as in
|
<interfacename>@RequestMapping</interfacename> methods as well as in the
|
||||||
the <classname>RestTemplate</classname> in conjunction with
|
<classname>RestTemplate</classname> in conjunction with Apache
|
||||||
Apache HttpComponents HttpClient version 4.2 or later.
|
HttpComponents HttpClient version 4.2 or later. The JDK
|
||||||
The JDK <classname>HttpURLConnection</classname> does not support the
|
<classname>HttpURLConnection</classname> does not support the
|
||||||
<code>PATCH</code> method.</para>
|
<code>PATCH</code> method.</para>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="new-in-3.2-webmvc-mapped-interceptor-exclude-patterns">
|
<section xml:id="new-in-3.2-webmvc-mapped-interceptor-exclude-patterns">
|
||||||
<title>Excluded patterns in mapped interceptors</title>
|
<title>Excluded patterns in mapped interceptors</title>
|
||||||
|
|
||||||
<para>Mapped interceptors now support URL patterns to be excluded.
|
<para>Mapped interceptors now support URL patterns to be excluded. The MVC
|
||||||
The MVC namespace and the MVC Java config both expose these options.</para>
|
namespace and the MVC JavaConfig both expose these options.</para>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="new-in-3.2-date-time-format-without-joda">
|
<section xml:id="new-in-3.2-date-time-format-without-joda">
|
||||||
<title>Support for <interfacename>@DateTimeFormat</interfacename> without Joda Time</title>
|
<title>Support for <interfacename>@DateTimeFormat</interfacename> without
|
||||||
<para>The <interfacename>@DateTimeFormat</interfacename> annotation can now be
|
Joda Time</title>
|
||||||
used without needing a dependency on the Joda Time library. If Joda Time is not
|
|
||||||
present the JDK <classname>SimpleDateFormat</classname> will be used to parse and
|
<para>The <interfacename>@DateTimeFormat</interfacename> annotation can
|
||||||
print date patterns. When Joda time is present it will continue to be used in
|
now be used without needing a dependency on the Joda Time library. If Joda
|
||||||
preference to <classname>SimpleDateFormat</classname>.
|
Time is not present the JDK <classname>SimpleDateFormat</classname> will
|
||||||
</para>
|
be used to parse and print date patterns. When Joda Time is present it
|
||||||
|
will continue to be used in preference to
|
||||||
|
<classname>SimpleDateFormat</classname>.</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="new-in-3.2-global-date-time-format">
|
<section xml:id="new-in-3.2-global-date-time-format">
|
||||||
<title>Global date & time formatting</title>
|
<title>Global date & time formatting</title>
|
||||||
<para>It is now possible to define global formats that will be used when parsing
|
|
||||||
and printing date and time types. See
|
<para>It is now possible to define global formats that will be used when
|
||||||
<xref linkend="format-configuring-formatting-globaldatetimeformat"/> for details.
|
parsing and printing date and time types. See <xref
|
||||||
</para>
|
linkend="format-configuring-formatting-globaldatetimeformat" /> for
|
||||||
|
details.</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section xml:id="new-in-3.2-testing">
|
||||||
|
<title>New Testing Features</title>
|
||||||
|
|
||||||
|
<para>In addition to the aforementioned inclusion of the <link
|
||||||
|
linkend="spring-mvc-test-framework">Spring MVC Test Framework</link> in
|
||||||
|
the <literal>spring-test</literal> module, the <emphasis>Spring
|
||||||
|
TestContext Framework</emphasis> has been revised with support for
|
||||||
|
integration testing web applications as well as configuring application
|
||||||
|
contexts with context initializers. For further details, consult the
|
||||||
|
following.</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Configuring and <link
|
||||||
|
linkend="testcontext-ctx-management-web">loading a
|
||||||
|
WebApplicationContext</link> in integration tests</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Testing <link linkend="testcontext-web-scoped-beans">request and
|
||||||
|
session scoped beans</link></para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Improvements to <link linkend="mock-objects-servlet">Servlet API
|
||||||
|
mocks</link></para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Configuring test application contexts with <link
|
||||||
|
linkend="testcontext-ctx-management-initializers">ApplicationContextInitializers</link></para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
</chapter>
|
</chapter>
|
||||||
|
|
Loading…
Reference in New Issue