Skip to content

Commit cddf92e

Browse files
committed
Polish "Deprecate @MockBean and @SpyBean"
See gh-39864
1 parent 2476394 commit cddf92e

File tree

122 files changed

+328
-475
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+328
-475
lines changed

buildSrc/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ new File(projectDir.parentFile, "gradle.properties").withInputStream {
2222
}
2323
}
2424
versions["jackson"] = "2.15.3"
25-
versions["springFramework"] = "6.2.0-SNAPSHOT"
25+
versions["springFramework"] = "6.0.12"
2626
ext.set("versions", versions)
2727
if (versions.springFramework.contains("-")) {
2828
repositories {

spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,13 +171,13 @@ dependencies {
171171
testImplementation("org.skyscreamer:jsonassert")
172172
testImplementation("org.springframework:spring-core-test")
173173
testImplementation("org.springframework:spring-orm")
174+
testImplementation("org.springframework:spring-test")
174175
testImplementation("org.springframework.data:spring-data-rest-webmvc")
175176
testImplementation("org.springframework.integration:spring-integration-jmx")
176177
testImplementation("org.springframework.restdocs:spring-restdocs-mockmvc")
177178
testImplementation("org.springframework.restdocs:spring-restdocs-webtestclient")
178179
testImplementation("org.springframework.security:spring-security-test")
179180
testImplementation("org.yaml:snakeyaml")
180-
testImplementation("org.springframework:spring-test")
181181

182182
testRuntimeOnly("jakarta.management.j2ee:jakarta.management.j2ee-api")
183183
testRuntimeOnly("jakarta.transaction:jakarta.transaction-api")

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/documentation/AuditEventsEndpointDocumentationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import org.springframework.context.annotation.Bean;
3030
import org.springframework.context.annotation.Configuration;
3131
import org.springframework.context.annotation.Import;
32-
import org.springframework.test.bean.override.mockito.MockitoBean;
32+
import org.springframework.test.context.bean.override.mockito.MockitoBean;
3333

3434
import static org.assertj.core.api.Assertions.assertThat;
3535
import static org.mockito.ArgumentMatchers.any;

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/documentation/HttpExchangesEndpointDocumentationTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,12 @@
3535
import org.springframework.boot.actuate.web.exchanges.Include;
3636
import org.springframework.boot.actuate.web.exchanges.RecordableHttpRequest;
3737
import org.springframework.boot.actuate.web.exchanges.RecordableHttpResponse;
38-
import org.springframework.boot.test.mock.mockito.MockBean;
3938
import org.springframework.context.annotation.Bean;
4039
import org.springframework.context.annotation.Configuration;
4140
import org.springframework.context.annotation.Import;
4241
import org.springframework.http.HttpHeaders;
4342
import org.springframework.restdocs.payload.JsonFieldType;
44-
import org.springframework.test.bean.override.mockito.MockitoBean;
43+
import org.springframework.test.context.bean.override.mockito.MockitoBean;
4544

4645
import static org.assertj.core.api.Assertions.assertThat;
4746
import static org.mockito.BDDMockito.given;

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/documentation/LoggersEndpointDocumentationTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.springframework.boot.logging.LoggerConfiguration;
3030
import org.springframework.boot.logging.LoggerGroups;
3131
import org.springframework.boot.logging.LoggingSystem;
32-
import org.springframework.boot.test.mock.mockito.MockBean;
3332
import org.springframework.context.annotation.Bean;
3433
import org.springframework.context.annotation.Configuration;
3534
import org.springframework.context.annotation.Import;
@@ -38,7 +37,7 @@
3837
import org.springframework.restdocs.mockmvc.MockMvcRestDocumentation;
3938
import org.springframework.restdocs.payload.FieldDescriptor;
4039
import org.springframework.restdocs.payload.JsonFieldType;
41-
import org.springframework.test.bean.override.mockito.MockitoBean;
40+
import org.springframework.test.context.bean.override.mockito.MockitoBean;
4241

4342
import static org.assertj.core.api.Assertions.assertThat;
4443
import static org.mockito.BDDMockito.given;

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/documentation/QuartzEndpointDocumentationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,13 @@
5454
import org.springframework.boot.actuate.endpoint.Show;
5555
import org.springframework.boot.actuate.quartz.QuartzEndpoint;
5656
import org.springframework.boot.actuate.quartz.QuartzEndpointWebExtension;
57-
import org.springframework.boot.test.mock.mockito.MockBean;
5857
import org.springframework.context.annotation.Bean;
5958
import org.springframework.context.annotation.Configuration;
6059
import org.springframework.context.annotation.Import;
6160
import org.springframework.restdocs.payload.FieldDescriptor;
6261
import org.springframework.restdocs.payload.JsonFieldType;
6362
import org.springframework.scheduling.quartz.DelegatingJob;
63+
import org.springframework.test.context.bean.override.mockito.MockitoBean;
6464
import org.springframework.util.LinkedMultiValueMap;
6565
import org.springframework.util.MultiValueMap;
6666

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/documentation/SessionsEndpointDocumentationTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626

2727
import org.springframework.boot.actuate.context.ShutdownEndpoint;
2828
import org.springframework.boot.actuate.session.SessionsEndpoint;
29-
import org.springframework.boot.test.mock.mockito.MockBean;
3029
import org.springframework.context.annotation.Bean;
3130
import org.springframework.context.annotation.Configuration;
3231
import org.springframework.context.annotation.Import;
@@ -35,8 +34,8 @@
3534
import org.springframework.session.FindByIndexNameSessionRepository;
3635
import org.springframework.session.MapSession;
3736
import org.springframework.session.Session;
38-
import org.springframework.test.bean.override.mockito.MockitoBean;
3937
import org.springframework.test.context.TestPropertySource;
38+
import org.springframework.test.context.bean.override.mockito.MockitoBean;
4039

4140
import static org.assertj.core.api.Assertions.assertThat;
4241
import static org.mockito.BDDMockito.given;

spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/spring-boot-applications.adoc

Lines changed: 3 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -247,38 +247,9 @@ When running tests, it is sometimes necessary to mock certain components within
247247
For example, you may have a facade over some remote service that is unavailable during development.
248248
Mocking can also be useful when you want to simulate failures that might be hard to trigger in a real environment.
249249

250-
Spring Boot includes a `@MockBean` annotation that can be used to define a Mockito mock for a bean inside your `ApplicationContext`.
251-
You can use the annotation to add new beans or replace a single existing bean definition.
252-
The annotation can be used directly on test classes, on fields within your test, or on `@Configuration` classes and fields.
253-
When used on a field, the instance of the created mock is also injected.
254-
Mock beans are automatically reset after each test method.
255-
256-
[NOTE]
257-
====
258-
If your test uses one of Spring Boot's test annotations (such as `@SpringBootTest`), this feature is automatically enabled.
259-
To use this feature with a different arrangement, listeners must be explicitly added, as shown in the following example:
260-
261-
include-code::listener/MyTests[]
262-
====
263-
264-
The following example replaces an existing `RemoteService` bean with a mock implementation:
265-
266-
include-code::bean/MyTests[]
267-
268-
NOTE: `@MockBean` cannot be used to mock the behavior of a bean that is exercised during application context refresh.
269-
By the time the test is executed, the application context refresh has completed and it is too late to configure the mocked behavior.
270-
We recommend using a `@Bean` method to create and configure the mock in this situation.
271-
272-
Additionally, you can use `@SpyBean` to wrap any existing bean with a Mockito `spy`.
273-
See the xref:api:java/org/springframework/boot/test/mock/mockito/SpyBean.html[`SpyBean`] API documentation for full details.
274-
275-
NOTE: While Spring's test framework caches application contexts between tests and reuses a context for tests sharing the same configuration, the use of `@MockBean` or `@SpyBean` influences the cache key, which will most likely increase the number of contexts.
276-
277-
TIP: If you are using `@SpyBean` to spy on a bean with `@Cacheable` methods that refer to parameters by name, your application must be compiled with `-parameters`.
278-
This ensures that the parameter names are available to the caching infrastructure once the bean has been spied upon.
279-
280-
TIP: When you are using `@SpyBean` to spy on a bean that is proxied by Spring, you may need to remove Spring's proxy in some situations, for example when setting expectations using `given` or `when`.
281-
Use `AopTestUtils.getTargetObject(yourProxiedSpy)` to do so.
250+
Spring Framework includes a `@MockitoBean` annotation that can be used to define a Mockito mock for a bean inside your `ApplicationContext`.
251+
Additionally, `@MockitoSpyBean` can be used to define a Mockito spy.
252+
Learn more about these features in the {url-spring-framework-docs}/testing/annotations/integration-spring/annotation-mockitobean.html[Spring Framework documentation].
282253

283254

284255

spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/bean/MyTests.java

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

spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/bean/RemoteService.java

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

spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/bean/Reverser.java

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

spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/listener/MyConfig.java

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

spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/listener/MyTests.java

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

spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/testing/springbootapplications/springmvctests/MyControllerTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import org.springframework.beans.factory.annotation.Autowired;
2222
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
2323
import org.springframework.http.MediaType;
24-
import org.springframework.test.bean.override.mockito.MockitoBean;
24+
import org.springframework.test.context.bean.override.mockito.MockitoBean;
2525
import org.springframework.test.web.servlet.assertj.MockMvcTester;
2626

2727
import static org.assertj.core.api.Assertions.assertThat;

spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/testing/springbootapplications/springmvctests/MyHtmlUnitTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
import org.springframework.beans.factory.annotation.Autowired;
2424
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
25-
import org.springframework.test.bean.override.mockito.MockitoBean;
25+
import org.springframework.test.context.bean.override.mockito.MockitoBean;
2626

2727
import static org.assertj.core.api.Assertions.assertThat;
2828
import static org.mockito.BDDMockito.given;

spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/MyControllerTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import org.springframework.beans.factory.annotation.Autowired;
2222
import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest;
2323
import org.springframework.http.MediaType;
24-
import org.springframework.test.bean.override.mockito.MockitoBean;
24+
import org.springframework.test.context.bean.override.mockito.MockitoBean;
2525
import org.springframework.test.web.reactive.server.WebTestClient;
2626

2727
import static org.mockito.BDDMockito.given;

spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testing/springbootapplications/mockingbeans/bean/MyTests.kt

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

spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testing/springbootapplications/mockingbeans/bean/RemoteService.kt

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

0 commit comments

Comments
 (0)