Skip to content

Commit 6f79c7e

Browse files
committed
Remove support for Mockito annotations and MockitoSession
This change remove the support for Mockito annotations, `MockitoSession` and opening/closing of mocks that was inherited from Boot's `@MockBean` support, as well as the switch to `MockitoSession` made in 1c893e6. Attempting to take responsability for things Mockito's own JUnit Jupiter extension does better is not ideal, and we found it leads to several corner cases which make `SpringExtension` and `MockitoExtension` incompatible in the current approach. Instead, this change refocuses our Mockito bean overriding support exclusively on aspects specific to the Framework. `MockitoExtension` will thus be usable in conjunction with `SpringExtension` if one needs to use `@Captor`/`@InitMocks`/`@Mock`/`@Spy` or other Mockito utilities. See gh-33318 Closes gh-33692
1 parent c261ca3 commit 6f79c7e

File tree

14 files changed

+5
-432
lines changed

14 files changed

+5
-432
lines changed

framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-mockitobean.adoc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,6 @@ creating unnecessary contexts.
2727
====
2828

2929
Each annotation also defines Mockito-specific attributes to fine-tune the mocking details.
30-
During the test class lifecycle, Mockito is set up via the `Mockito#mockitoSession()`
31-
mechanism. Notably, it enables `STRICT_STUBS` mode by default. This can be changed on
32-
individual test classes with the `@MockitoBeanSettings` annotation.
3330

3431
By default, the `@MockitoBean` annotation uses the `REPLACE_OR_CREATE`
3532
xref:testing/testcontext-framework/bean-overriding.adoc#testcontext-bean-overriding-custom[strategy for test bean overriding].

framework-docs/modules/ROOT/pages/testing/testcontext-framework/tel-config.adoc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ by default, exactly in the following order:
1010
annotation for "`before`" modes.
1111
* `ApplicationEventsTestExecutionListener`: Provides support for
1212
xref:testing/testcontext-framework/application-events.adoc[`ApplicationEvents`].
13-
* `MockitoTestExecutionListener`: Initializes and closes mocks configured using `@MockitoBean` or `@MockitoSpyBean`.
1413
* `DependencyInjectionTestExecutionListener`: Provides dependency injection for the test
1514
instance.
1615
* `MicrometerObservationRegistryTestExecutionListener`: Provides support for

spring-test/src/main/java/org/springframework/test/context/TestExecutionListener.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,6 @@
6666
* DirtiesContextBeforeModesTestExecutionListener}</li>
6767
* <li>{@link org.springframework.test.context.event.ApplicationEventsTestExecutionListener
6868
* ApplicationEventsTestExecutionListener}</li>
69-
* <li>{@link org.springframework.test.context.bean.override.mockito.MockitoTestExecutionListener
70-
* MockitoTestExecutionListener}</li>
7169
* <li>{@link org.springframework.test.context.support.DependencyInjectionTestExecutionListener
7270
* DependencyInjectionTestExecutionListener}</li>
7371
* <li>{@link org.springframework.test.context.observation.MicrometerObservationRegistryTestExecutionListener

spring-test/src/main/java/org/springframework/test/context/TestExecutionListeners.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@
8282
* @see org.springframework.test.context.web.ServletTestExecutionListener
8383
* @see org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener
8484
* @see org.springframework.test.context.event.ApplicationEventsTestExecutionListener
85-
* @see org.springframework.test.context.bean.override.mockito.MockitoTestExecutionListener
8685
* @see org.springframework.test.context.support.DependencyInjectionTestExecutionListener
8786
* @see org.springframework.test.context.support.DirtiesContextTestExecutionListener
8887
* @see org.springframework.test.context.support.CommonCachesTestExecutionListener

spring-test/src/main/java/org/springframework/test/context/bean/override/mockito/AbstractMockitoTestExecutionListener.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,16 @@ abstract class AbstractMockitoTestExecutionListener extends AbstractTestExecutio
4242

4343
private static final String SPRING_MOCKITO_PACKAGE = "org.springframework.test.context.bean.override.mockito";
4444

45-
private static final String ORG_MOCKITO_PACKAGE = "org.mockito";
46-
4745
private static final Predicate<MergedAnnotation<?>> isMockitoAnnotation = mergedAnnotation -> {
4846
String packageName = mergedAnnotation.getType().getPackageName();
49-
return (packageName.startsWith(SPRING_MOCKITO_PACKAGE) ||
50-
packageName.startsWith(ORG_MOCKITO_PACKAGE));
47+
return packageName.startsWith(SPRING_MOCKITO_PACKAGE);
5148
};
5249

5350

5451
/**
5552
* Determine if the test class for the supplied {@linkplain TestContext
56-
* test context} uses {@code org.mockito} annotations or any of the annotations
57-
* in this package (such as {@link MockitoBeanSettings @MockitoBeanSettings}).
53+
* test context} uses any of the annotations in this package (such as
54+
* {@link MockitoBean @MockitoBean}).
5855
*/
5956
static boolean hasMockitoAnnotations(TestContext testContext) {
6057
return hasMockitoAnnotations(testContext.getTestClass());

spring-test/src/main/java/org/springframework/test/context/bean/override/mockito/MockitoBeanSettings.java

Lines changed: 0 additions & 47 deletions
This file was deleted.

spring-test/src/main/java/org/springframework/test/context/bean/override/mockito/MockitoResetTestExecutionListener.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
* @author Phillip Webb
4141
* @author Sam Brannen
4242
* @since 6.2
43-
* @see MockitoTestExecutionListener
4443
* @see MockitoBean @MockitoBean
4544
* @see MockitoSpyBean @MockitoSpyBean
4645
*/

spring-test/src/main/java/org/springframework/test/context/bean/override/mockito/MockitoTestExecutionListener.java

Lines changed: 0 additions & 102 deletions
This file was deleted.

spring-test/src/main/resources/META-INF/spring.factories

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ org.springframework.test.context.TestExecutionListener = \
44
org.springframework.test.context.web.ServletTestExecutionListener,\
55
org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener,\
66
org.springframework.test.context.event.ApplicationEventsTestExecutionListener,\
7-
org.springframework.test.context.bean.override.mockito.MockitoTestExecutionListener,\
87
org.springframework.test.context.support.DependencyInjectionTestExecutionListener,\
98
org.springframework.test.context.observation.MicrometerObservationRegistryTestExecutionListener,\
109
org.springframework.test.context.support.DirtiesContextTestExecutionListener,\

spring-test/src/test/java/org/springframework/test/context/TestExecutionListenersTests.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import org.springframework.core.annotation.AnnotationConfigurationException;
2828
import org.springframework.test.context.bean.override.BeanOverrideTestExecutionListener;
2929
import org.springframework.test.context.bean.override.mockito.MockitoResetTestExecutionListener;
30-
import org.springframework.test.context.bean.override.mockito.MockitoTestExecutionListener;
3130
import org.springframework.test.context.event.ApplicationEventsTestExecutionListener;
3231
import org.springframework.test.context.event.EventPublishingTestExecutionListener;
3332
import org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener;
@@ -69,7 +68,6 @@ void defaultListeners() {
6968
List<Class<?>> expected = asList(ServletTestExecutionListener.class,//
7069
DirtiesContextBeforeModesTestExecutionListener.class,//
7170
ApplicationEventsTestExecutionListener.class,//
72-
MockitoTestExecutionListener.class,//
7371
DependencyInjectionTestExecutionListener.class,//
7472
micrometerListenerClass,//
7573
DirtiesContextTestExecutionListener.class,//
@@ -92,7 +90,6 @@ void defaultListenersMergedWithCustomListenerPrepended() {
9290
ServletTestExecutionListener.class,//
9391
DirtiesContextBeforeModesTestExecutionListener.class,//
9492
ApplicationEventsTestExecutionListener.class,//
95-
MockitoTestExecutionListener.class,//
9693
DependencyInjectionTestExecutionListener.class,//
9794
micrometerListenerClass,//
9895
DirtiesContextTestExecutionListener.class,//
@@ -114,7 +111,6 @@ void defaultListenersMergedWithCustomListenerAppended() {
114111
List<Class<?>> expected = asList(ServletTestExecutionListener.class,//
115112
DirtiesContextBeforeModesTestExecutionListener.class,//
116113
ApplicationEventsTestExecutionListener.class,//
117-
MockitoTestExecutionListener.class,//
118114
DependencyInjectionTestExecutionListener.class,//
119115
micrometerListenerClass,//
120116
DirtiesContextTestExecutionListener.class,//
@@ -137,7 +133,6 @@ void defaultListenersMergedWithCustomListenerInserted() {
137133
List<Class<?>> expected = asList(ServletTestExecutionListener.class,//
138134
DirtiesContextBeforeModesTestExecutionListener.class,//
139135
ApplicationEventsTestExecutionListener.class,//
140-
MockitoTestExecutionListener.class,//
141136
DependencyInjectionTestExecutionListener.class,//
142137
BarTestExecutionListener.class,//
143138
micrometerListenerClass,//

spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanNestedTests.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,8 @@
3030
import static org.mockito.Mockito.times;
3131

3232
/**
33-
* Verifies proper handling of the {@link org.mockito.MockitoSession MockitoSession}
34-
* when a {@link MockitoBean @MockitoBean} field is declared in the enclosing class of
35-
* a {@link Nested @Nested} test class.
33+
* Verifies proper reset of mocks when a {@link MockitoBean @MockitoBean} field
34+
* is declared in the enclosing class of a {@link Nested @Nested} test class.
3635
*
3736
* @author Andy Wilkinson
3837
* @author Sam Brannen

spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanSettingsInheritedStrictnessTests.java

Lines changed: 0 additions & 63 deletions
This file was deleted.

spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanSettingsLenientIntegrationTests.java

Lines changed: 0 additions & 56 deletions
This file was deleted.

0 commit comments

Comments
 (0)