Skip to content

Commit aee52b5

Browse files
committed
Introduce MockitoAssertions
1 parent 92bbaa2 commit aee52b5

20 files changed

+143
-95
lines changed

spring-test/src/test/java/org/springframework/test/context/aot/TestContextAotGeneratorIntegrationTests.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import org.assertj.core.util.Arrays;
2929
import org.easymock.EasyMockSupport;
3030
import org.junit.jupiter.api.Test;
31-
import org.mockito.Mockito;
3231

3332
import org.springframework.aot.AotDetector;
3433
import org.springframework.aot.generate.DefaultGenerationContext;
@@ -80,6 +79,7 @@
8079
import static org.springframework.aot.hint.predicate.RuntimeHintsPredicates.proxies;
8180
import static org.springframework.aot.hint.predicate.RuntimeHintsPredicates.reflection;
8281
import static org.springframework.aot.hint.predicate.RuntimeHintsPredicates.resource;
82+
import static org.springframework.test.mockito.MockitoAssertions.assertIsMock;
8383
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
8484
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
8585
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@@ -377,8 +377,8 @@ private void assertContextForMockitoBeanOverrideTests(ApplicationContext context
377377
GreetingService greetingService = context.getBean(GreetingService.class);
378378
MessageService messageService = context.getBean(MessageService.class);
379379

380-
assertThat(Mockito.mockingDetails(greetingService).isMock()).as("Mockito mock").isTrue();
381-
assertThat(Mockito.mockingDetails(messageService).isMock()).as("Mockito mock").isTrue();
380+
assertIsMock(greetingService, "greetingService");
381+
assertIsMock(messageService, "messageService");
382382
}
383383

384384
private void assertContextForWebTests(WebApplicationContext wac) throws Exception {

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

+5-5
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
import org.junit.jupiter.api.DisplayName;
2020
import org.junit.jupiter.api.Nested;
2121
import org.junit.jupiter.api.Test;
22-
import org.mockito.Mockito;
2322

2423
import org.springframework.context.ApplicationContext;
2524
import org.springframework.context.annotation.Bean;
2625
import org.springframework.context.annotation.Configuration;
2726
import org.springframework.test.context.bean.override.example.ExampleService;
2827
import org.springframework.test.context.bean.override.example.RealExampleService;
2928
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
29+
import org.springframework.test.mockito.MockitoAssertions;
3030

3131
import static org.assertj.core.api.Assertions.assertThat;
3232

@@ -59,7 +59,7 @@ public class MockitoBeanForByNameLookupIntegrationTests {
5959
void fieldAndRenamedFieldHaveSameOverride(ApplicationContext ctx) {
6060
assertThat(ctx.getBean("field"))
6161
.isInstanceOf(ExampleService.class)
62-
.satisfies(o -> assertThat(Mockito.mockingDetails(o).isMock()).as("isMock").isTrue())
62+
.satisfies(MockitoAssertions::assertIsMock)
6363
.isSameAs(this.field)
6464
.isSameAs(this.renamed1);
6565

@@ -71,7 +71,7 @@ void fieldAndRenamedFieldHaveSameOverride(ApplicationContext ctx) {
7171
void fieldIsMockedWhenNoOriginalBean(ApplicationContext ctx) {
7272
assertThat(ctx.getBean("nonExistingBean"))
7373
.isInstanceOf(ExampleService.class)
74-
.satisfies(o -> assertThat(Mockito.mockingDetails(o).isMock()).as("isMock").isTrue())
74+
.satisfies(MockitoAssertions::assertIsMock)
7575
.isSameAs(this.nonExisting1);
7676

7777
assertThat(this.nonExisting1.greeting()).as("mocked greeting").isNull();
@@ -86,7 +86,7 @@ public class MockitoBeanNestedTests {
8686
void fieldAndRenamedFieldHaveSameOverride(ApplicationContext ctx) {
8787
assertThat(ctx.getBean("nestedField"))
8888
.isInstanceOf(ExampleService.class)
89-
.satisfies(o -> assertThat(Mockito.mockingDetails(o).isMock()).as("isMock").isTrue())
89+
.satisfies(MockitoAssertions::assertIsMock)
9090
.isSameAs(nestedField)
9191
.isSameAs(renamed2);
9292
}
@@ -95,7 +95,7 @@ void fieldAndRenamedFieldHaveSameOverride(ApplicationContext ctx) {
9595
void fieldIsMockedWhenNoOriginalBean(ApplicationContext ctx) {
9696
assertThat(ctx.getBean("nestedNonExistingBean"))
9797
.isInstanceOf(ExampleService.class)
98-
.satisfies(o -> assertThat(Mockito.mockingDetails(o).isMock()).as("isMock").isTrue())
98+
.satisfies(MockitoAssertions::assertIsMock)
9999
.isSameAs(nonExisting2);
100100
}
101101
}

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

+6-6
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package org.springframework.test.context.bean.override.mockito;
1818

1919
import org.junit.jupiter.api.Test;
20-
import org.mockito.Mockito;
2120

2221
import org.springframework.beans.factory.NoUniqueBeanDefinitionException;
2322
import org.springframework.beans.factory.annotation.Qualifier;
@@ -29,6 +28,7 @@
2928
import org.springframework.test.context.bean.override.example.ExampleService;
3029
import org.springframework.test.context.bean.override.example.RealExampleService;
3130
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
31+
import org.springframework.test.mockito.MockitoAssertions;
3232

3333
import static org.assertj.core.api.Assertions.assertThat;
3434
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
@@ -37,6 +37,7 @@
3737
import static org.mockito.Mockito.times;
3838
import static org.mockito.Mockito.verify;
3939
import static org.mockito.Mockito.verifyNoMoreInteractions;
40+
import static org.springframework.test.mockito.MockitoAssertions.assertIsMock;
4041

4142
/**
4243
* Integration tests for {@link MockitoBean} that use by-type lookup.
@@ -64,8 +65,7 @@ public class MockitoBeanForByTypeLookupIntegrationTests {
6465

6566
@Test
6667
void mockIsCreatedWhenNoCandidateIsFound() {
67-
assertThat(this.serviceIsNotABean)
68-
.satisfies(o -> assertThat(Mockito.mockingDetails(o).isMock()).as("isMock").isTrue());
68+
assertIsMock(this.serviceIsNotABean);
6969

7070
when(this.serviceIsNotABean.hello()).thenReturn("Mocked hello");
7171

@@ -77,7 +77,7 @@ void mockIsCreatedWhenNoCandidateIsFound() {
7777
@Test
7878
void overrideIsFoundByType(ApplicationContext ctx) {
7979
assertThat(this.anyNameForService)
80-
.satisfies(o -> assertThat(Mockito.mockingDetails(o).isMock()).as("isMock").isTrue())
80+
.satisfies(MockitoAssertions::assertIsMock)
8181
.isSameAs(ctx.getBean("example"))
8282
.isSameAs(ctx.getBean(ExampleService.class));
8383

@@ -91,7 +91,7 @@ void overrideIsFoundByType(ApplicationContext ctx) {
9191
@Test
9292
void overrideIsFoundByTypeAndDisambiguatedByQualifier(ApplicationContext ctx) {
9393
assertThat(this.ambiguous)
94-
.satisfies(o -> assertThat(Mockito.mockingDetails(o).isMock()).as("isMock").isTrue())
94+
.satisfies(MockitoAssertions::assertIsMock)
9595
.isSameAs(ctx.getBean("ambiguous2"));
9696

9797
assertThatExceptionOfType(NoUniqueBeanDefinitionException.class)
@@ -108,7 +108,7 @@ void overrideIsFoundByTypeAndDisambiguatedByQualifier(ApplicationContext ctx) {
108108
@Test
109109
void overrideIsFoundByTypeAndDisambiguatedByMetaQualifier(ApplicationContext ctx) {
110110
assertThat(this.ambiguousMeta)
111-
.satisfies(o -> assertThat(Mockito.mockingDetails(o).isMock()).as("isMock").isTrue())
111+
.satisfies(MockitoAssertions::assertIsMock)
112112
.isSameAs(ctx.getBean("ambiguous1"));
113113

114114
assertThatExceptionOfType(NoUniqueBeanDefinitionException.class)

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

+4-6
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import java.util.List;
2020

2121
import org.junit.jupiter.api.Test;
22-
import org.mockito.MockingDetails;
2322

2423
import org.springframework.beans.factory.annotation.Autowired;
2524
import org.springframework.context.annotation.Bean;
@@ -29,7 +28,8 @@
2928
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
3029

3130
import static org.assertj.core.api.Assertions.assertThat;
32-
import static org.mockito.Mockito.mockingDetails;
31+
import static org.springframework.test.mockito.MockitoAssertions.assertIsNotSpy;
32+
import static org.springframework.test.mockito.MockitoAssertions.assertIsSpy;
3333

3434
/**
3535
* Integration tests for duplicate {@link MockitoSpyBean @MockitoSpyBean}
@@ -61,10 +61,8 @@ void duplicateMocksShouldHaveBeenCreated() {
6161
assertThat(service1).isSameAs(service2);
6262
assertThat(services).containsExactly(service1, exampleService2);
6363

64-
MockingDetails mockingDetails1 = mockingDetails(service1);
65-
MockingDetails mockingDetails2 = mockingDetails(exampleService2);
66-
assertThat(mockingDetails1.isSpy()).as("isSpy(service1)").isTrue();
67-
assertThat(mockingDetails2.isSpy()).as("isSpy(exampleService2)").isFalse();
64+
assertIsSpy(service1, "service1");
65+
assertIsNotSpy(exampleService2, "exampleService2");
6866
}
6967

7068

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

+2-4
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import java.util.List;
2020

2121
import org.junit.jupiter.api.Test;
22-
import org.mockito.MockingDetails;
2322

2423
import org.springframework.beans.factory.annotation.Autowired;
2524
import org.springframework.context.annotation.Bean;
@@ -29,7 +28,7 @@
2928
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
3029

3130
import static org.assertj.core.api.Assertions.assertThat;
32-
import static org.mockito.Mockito.mockingDetails;
31+
import static org.springframework.test.mockito.MockitoAssertions.assertIsSpy;
3332

3433
/**
3534
* Integration tests for duplicate {@link MockitoSpyBean @MockitoSpyBean}
@@ -58,8 +57,7 @@ void test() {
5857
assertThat(service1).isSameAs(service2);
5958
assertThat(services).containsExactly(service1);
6059

61-
MockingDetails mockingDetails = mockingDetails(service1);
62-
assertThat(mockingDetails.isSpy()).as("isSpy(field1)").isTrue();
60+
assertIsSpy(service1, "service1");
6361
}
6462

6563

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

+5-5
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.junit.jupiter.api.DisplayName;
2020
import org.junit.jupiter.api.Nested;
2121
import org.junit.jupiter.api.Test;
22-
import org.mockito.Mockito;
2322

2423
import org.springframework.context.ApplicationContext;
2524
import org.springframework.context.annotation.Bean;
@@ -28,6 +27,7 @@
2827
import org.springframework.test.context.bean.override.example.RealExampleService;
2928
import org.springframework.test.context.bean.override.mockito.MockitoSpyBeanForByNameLookupIntegrationTests.Config;
3029
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
30+
import org.springframework.test.mockito.MockitoAssertions;
3131

3232
import static org.assertj.core.api.Assertions.assertThat;
3333

@@ -52,7 +52,7 @@ public class MockitoSpyBeanForByNameLookupIntegrationTests {
5252
void fieldHasOverride(ApplicationContext ctx) {
5353
assertThat(ctx.getBean("field1"))
5454
.isInstanceOf(ExampleService.class)
55-
.satisfies(o -> assertThat(Mockito.mockingDetails(o).isSpy()).as("isSpy").isTrue())
55+
.satisfies(MockitoAssertions::assertIsSpy)
5656
.isSameAs(field);
5757

5858
assertThat(field.greeting()).isEqualTo("bean1");
@@ -62,7 +62,7 @@ void fieldHasOverride(ApplicationContext ctx) {
6262
void renamedFieldHasOverride(ApplicationContext ctx) {
6363
assertThat(ctx.getBean("field1"))
6464
.isInstanceOf(ExampleService.class)
65-
.satisfies(o -> assertThat(Mockito.mockingDetails(o).isSpy()).as("isSpy").isTrue())
65+
.satisfies(MockitoAssertions::assertIsSpy)
6666
.isSameAs(renamed1);
6767

6868
assertThat(renamed1.greeting()).isEqualTo("bean1");
@@ -82,7 +82,7 @@ public class MockitoSpyBeanNestedTests {
8282
void fieldHasOverride(ApplicationContext ctx) {
8383
assertThat(ctx.getBean("field2"))
8484
.isInstanceOf(ExampleService.class)
85-
.satisfies(o -> assertThat(Mockito.mockingDetails(o).isSpy()).as("isSpy").isTrue())
85+
.satisfies(MockitoAssertions::assertIsSpy)
8686
.isSameAs(nestedField);
8787

8888
assertThat(nestedField.greeting()).isEqualTo("bean2");
@@ -92,7 +92,7 @@ void fieldHasOverride(ApplicationContext ctx) {
9292
void renamedFieldHasOverride(ApplicationContext ctx) {
9393
assertThat(ctx.getBean("field2"))
9494
.isInstanceOf(ExampleService.class)
95-
.satisfies(o -> assertThat(Mockito.mockingDetails(o).isSpy()).as("isSpy").isTrue())
95+
.satisfies(MockitoAssertions::assertIsSpy)
9696
.isSameAs(renamed2);
9797

9898
assertThat(renamed2.greeting()).isEqualTo("bean2");

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

+4-4
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package org.springframework.test.context.bean.override.mockito;
1818

1919
import org.junit.jupiter.api.Test;
20-
import org.mockito.Mockito;
2120

2221
import org.springframework.beans.factory.annotation.Qualifier;
2322
import org.springframework.context.ApplicationContext;
@@ -28,6 +27,7 @@
2827
import org.springframework.test.context.bean.override.example.ExampleService;
2928
import org.springframework.test.context.bean.override.example.RealExampleService;
3029
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
30+
import org.springframework.test.mockito.MockitoAssertions;
3131

3232
import static org.assertj.core.api.Assertions.assertThat;
3333
import static org.assertj.core.api.Assertions.assertThatException;
@@ -59,7 +59,7 @@ public class MockitoSpyBeanForByTypeLookupIntegrationTests {
5959
@Test
6060
void overrideIsFoundByType(ApplicationContext ctx) {
6161
assertThat(this.anyNameForService)
62-
.satisfies(o -> assertThat(Mockito.mockingDetails(o).isSpy()).as("isSpy").isTrue())
62+
.satisfies(MockitoAssertions::assertIsSpy)
6363
.isSameAs(ctx.getBean("example"))
6464
.isSameAs(ctx.getBean(ExampleService.class));
6565

@@ -71,7 +71,7 @@ void overrideIsFoundByType(ApplicationContext ctx) {
7171
@Test
7272
void overrideIsFoundByTypeAndDisambiguatedByQualifier(ApplicationContext ctx) {
7373
assertThat(this.ambiguous)
74-
.satisfies(o -> assertThat(Mockito.mockingDetails(o).isSpy()).as("isSpy").isTrue())
74+
.satisfies(MockitoAssertions::assertIsSpy)
7575
.isSameAs(ctx.getBean("ambiguous2"));
7676

7777
assertThatException()
@@ -88,7 +88,7 @@ void overrideIsFoundByTypeAndDisambiguatedByQualifier(ApplicationContext ctx) {
8888
@Test
8989
void overrideIsFoundByTypeAndDisambiguatedByMetaQualifier(ApplicationContext ctx) {
9090
assertThat(this.ambiguousMeta)
91-
.satisfies(o -> assertThat(Mockito.mockingDetails(o).isSpy()).as("isSpy").isTrue())
91+
.satisfies(MockitoAssertions::assertIsSpy)
9292
.isSameAs(ctx.getBean("ambiguous1"));
9393

9494
assertThatException()

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
import org.junit.jupiter.api.Test;
2222
import org.junit.jupiter.api.extension.ExtendWith;
23-
import org.mockito.Mockito;
2423

2524
import org.springframework.aop.support.AopUtils;
2625
import org.springframework.beans.factory.annotation.Autowired;
@@ -34,6 +33,7 @@
3433
import static java.util.concurrent.CompletableFuture.completedFuture;
3534
import static org.assertj.core.api.Assertions.assertThat;
3635
import static org.mockito.BDDMockito.given;
36+
import static org.springframework.test.mockito.MockitoAssertions.assertIsMock;
3737

3838
/**
3939
* Tests for {@link MockitoBean @MockitoBean} where the mocked interface has an
@@ -56,7 +56,7 @@ public class MockitoBeanAndAsyncInterfaceMethodIntegrationTests {
5656
@Test
5757
void mockedMethodsAreNotAsync() throws Exception {
5858
assertThat(AopUtils.isAopProxy(transformer)).as("is Spring AOP proxy").isFalse();
59-
assertThat(Mockito.mockingDetails(transformer).isMock()).as("is Mockito mock").isTrue();
59+
assertIsMock(transformer);
6060

6161
given(transformer.transform("foo")).willReturn(completedFuture("bar"));
6262
assertThat(service.transform("foo")).isEqualTo("result: bar");

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import org.junit.jupiter.api.RepeatedTest;
2020
import org.junit.jupiter.api.extension.ExtendWith;
21-
import org.mockito.Mockito;
2221

2322
import org.springframework.aop.support.AopUtils;
2423
import org.springframework.cache.CacheManager;
@@ -39,6 +38,7 @@
3938
import static org.mockito.BDDMockito.given;
4039
import static org.mockito.Mockito.times;
4140
import static org.mockito.Mockito.verify;
41+
import static org.springframework.test.mockito.MockitoAssertions.assertIsMock;
4242

4343
/**
4444
* Tests for {@link MockitoBean @MockitoBean} used in combination with Spring AOP.
@@ -69,7 +69,7 @@ class MockitoBeanAndSpringAopProxyIntegrationTests {
6969
@RepeatedTest(2)
7070
void mockShouldNotBeAnAopProxy() {
7171
assertThat(AopUtils.isAopProxy(dateService)).as("is Spring AOP proxy").isFalse();
72-
assertThat(Mockito.mockingDetails(dateService).isMock()).as("is Mockito mock").isTrue();
72+
assertIsMock(dateService);
7373

7474
given(dateService.getDate(false)).willReturn(1L);
7575
Long date = dateService.getDate(false);

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

+5-4
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package org.springframework.test.context.bean.override.mockito.integration;
1818

1919
import org.junit.jupiter.api.Test;
20-
import org.mockito.Mockito;
2120

2221
import org.springframework.context.event.ContextRefreshedEvent;
2322
import org.springframework.context.event.EventListener;
@@ -26,9 +25,10 @@
2625
import org.springframework.test.context.bean.override.mockito.integration.MockitoBeanUsedDuringApplicationContextRefreshIntegrationTests.ContextRefreshedEventListener;
2726
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
2827

29-
import static org.assertj.core.api.Assertions.assertThat;
3028
import static org.mockito.ArgumentMatchers.any;
3129
import static org.mockito.BDDMockito.then;
30+
import static org.springframework.test.mockito.MockitoAssertions.assertIsMock;
31+
import static org.springframework.test.mockito.MockitoAssertions.assertIsNotSpy;
3232

3333
/**
3434
* Integration tests for {@link MockitoBean @MockitoBean} used during
@@ -48,8 +48,9 @@ class MockitoBeanUsedDuringApplicationContextRefreshIntegrationTests {
4848

4949
@Test
5050
void test() {
51-
assertThat(Mockito.mockingDetails(eventProcessor).isMock()).as("isMock").isTrue();
52-
assertThat(Mockito.mockingDetails(eventProcessor).isSpy()).as("isSpy").isFalse();
51+
assertIsMock(eventProcessor);
52+
assertIsNotSpy(eventProcessor);
53+
5354
// Ensure that the mock was invoked during ApplicationContext refresh
5455
// and has not been reset in the interim.
5556
then(eventProcessor).should().process(any(ContextRefreshedEvent.class));

0 commit comments

Comments
 (0)