spring-framework/framework-docs/modules/ROOT/pages/testing
Sam Brannen 9181cce65f Support @⁠MockitoBean at the type level on test classes
Prior to this commit, @⁠MockitoBean could only be declared on fields
within test classes, which prevented developers from being able to
easily reuse mock configuration across a test suite.

With this commit, @⁠MockitoBean is now supported at the type level on
test classes, their superclasses, and interfaces implemented by those
classes. @⁠MockitoBean is also supported on enclosing classes for
@⁠Nested test classes, their superclasses, and interfaces implemented
by those classes, while honoring @⁠NestedTestConfiguration semantics.

In addition, @⁠MockitoBean:

- has a new `types` attribute that can be used to declare the type or
  types to mock when @⁠MockitoBean is declared at the type level

- can be declared as a repeatable annotation at the type level

- can be declared as a meta-annotation on a custom composed annotation
  which can be reused across a test suite (see the @⁠SharedMocks
  example in the reference manual)

To support these new features, this commit also includes the following
changes.

- The `field` property in BeanOverrideHandler is now @⁠Nullable.

- BeanOverrideProcessor has a new `default` createHandlers() method
  which is invoked when a @⁠BeanOverride annotation is found at the
  type level.

- MockitoBeanOverrideProcessor implements the new createHandlers()
  method.

- The internal findHandlers() method in BeanOverrideHandler has been
  completely overhauled.

- The @⁠MockitoBean and @⁠MockitoSpyBean section of the reference
  manual has been completely overhauled.

Closes gh-33925
2025-01-15 17:13:35 +01:00
..
annotations Support @⁠MockitoBean at the type level on test classes 2025-01-15 17:13:35 +01:00
mockmvc Rework links to Spring Boot in reference docs 2024-10-23 16:10:37 +02:00
testcontext-framework Reject static Bean Override fields for @⁠MockitoBean, @⁠TestBean, etc. 2024-11-20 11:29:01 +01:00
annotations.adoc Remove duplicated section links for test annotations 2023-09-13 17:50:12 +02:00
appendix.adoc Trim IDs with parent 2023-05-04 15:35:05 +01:00
integration.adoc Document AssertJ support for MockMvc 2024-06-21 12:51:35 +02:00
introduction.adoc Enable Section Summary TOC for small pages 2023-05-04 15:35:05 +01:00
mockmvc.adoc Revise introductory content for MockMvc 2024-09-08 17:59:15 +02:00
resources.adoc Restructure content in testing resources section 2024-09-12 13:37:58 +02:00
spring-mvc-test-client.adoc Replace 'e.g.' with 'for example' in documentation and comments 2024-09-26 14:11:17 +02:00
support-jdbc.adoc Fix link in testing/support-jdbc.adoc 2024-10-14 12:07:17 +02:00
testcontext-framework.adoc Enable Section Summary TOC for small pages 2023-05-04 15:35:05 +01:00
unit.adoc Delete obsolete documentation for JNDI mock support 2024-07-01 18:32:28 +02:00
webtestclient.adoc Fix broken links in the web reference documentation 2024-12-23 11:14:40 +01:00