From 5c08f81d80b8b848ee36e82ab54c01cb6e7dd6f8 Mon Sep 17 00:00:00 2001 From: Sam Brannen <104798+sbrannen@users.noreply.github.com> Date: Sun, 29 Sep 2024 16:28:06 +0200 Subject: [PATCH] Polishing --- .../mockito/MockitoTestExecutionListener.java | 10 +++++----- ...toBeanSettingsLenientIntegrationTests.java | 10 +++++++++- ...itoBeanSettingsStrictIntegrationTests.java | 20 ++++++++++++++----- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/spring-test/src/main/java/org/springframework/test/context/bean/override/mockito/MockitoTestExecutionListener.java b/spring-test/src/main/java/org/springframework/test/context/bean/override/mockito/MockitoTestExecutionListener.java index abc005180994..46d7799889b7 100644 --- a/spring-test/src/main/java/org/springframework/test/context/bean/override/mockito/MockitoTestExecutionListener.java +++ b/spring-test/src/main/java/org/springframework/test/context/bean/override/mockito/MockitoTestExecutionListener.java @@ -104,12 +104,12 @@ public void afterTestClass(TestContext testContext) throws Exception { } private void initMocks(TestContext testContext) { - if (MockitoAnnotationDetector.hasMockitoAnnotations(testContext.getTestClass())) { + Class testClass = testContext.getTestClass(); + if (MockitoAnnotationDetector.hasMockitoAnnotations(testClass)) { Object testInstance = testContext.getTestInstance(); - MockitoBeanSettings annotation = AnnotationUtils.findAnnotation(testInstance.getClass(), - MockitoBeanSettings.class); - testContext.setAttribute(MOCKS_ATTRIBUTE_NAME, initMockitoSession(testInstance, - annotation != null ? annotation.value() : Strictness.STRICT_STUBS)); + MockitoBeanSettings annotation = AnnotationUtils.findAnnotation(testClass, MockitoBeanSettings.class); + Strictness strictness = (annotation != null ? annotation.value() : Strictness.STRICT_STUBS); + testContext.setAttribute(MOCKS_ATTRIBUTE_NAME, initMockitoSession(testInstance, strictness)); } } diff --git a/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanSettingsLenientIntegrationTests.java b/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanSettingsLenientIntegrationTests.java index 955292e299d9..315e65fd2f7b 100644 --- a/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanSettingsLenientIntegrationTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanSettingsLenientIntegrationTests.java @@ -21,6 +21,8 @@ import org.junit.jupiter.api.Test; import org.mockito.quality.Strictness; +import org.springframework.context.annotation.Configuration; +import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; import static org.mockito.ArgumentMatchers.anyInt; @@ -34,7 +36,8 @@ * @author Simon Baslé * @since 6.2 */ -@SpringJUnitConfig(MockitoBeanForByNameLookupIntegrationTests.Config.class) +@SpringJUnitConfig +@DirtiesContext @MockitoBeanSettings(Strictness.LENIENT) class MockitoBeanSettingsLenientIntegrationTests { @@ -45,4 +48,9 @@ void unusedStubbingNotReported() { when(list.get(anyInt())).thenReturn(new Object()); } + @Configuration(proxyBeanMethods = false) + static class Config { + // no beans + } + } diff --git a/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanSettingsStrictIntegrationTests.java b/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanSettingsStrictIntegrationTests.java index 718f2f9fb2c2..a54fbf3756be 100644 --- a/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanSettingsStrictIntegrationTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanSettingsStrictIntegrationTests.java @@ -25,11 +25,11 @@ import org.junit.jupiter.params.provider.FieldSource; import org.junit.platform.testkit.engine.EngineTestKit; import org.junit.platform.testkit.engine.Events; -import org.mockito.Mockito; import org.mockito.exceptions.misusing.UnnecessaryStubbingException; import org.mockito.quality.Strictness; -import org.springframework.test.context.bean.override.mockito.MockitoBeanForByNameLookupIntegrationTests.Config; +import org.springframework.context.annotation.Configuration; +import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; import static org.junit.jupiter.params.provider.Arguments.argumentSet; @@ -39,9 +39,12 @@ import static org.junit.platform.testkit.engine.EventConditions.test; import static org.junit.platform.testkit.engine.TestExecutionResultConditions.instanceOf; import static org.junit.platform.testkit.engine.TestExecutionResultConditions.message; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.BDDMockito.when; +import static org.mockito.Mockito.mock; /** - * Integration tests ensuring unnecessary stubbings are reported in various + * Integration tests ensuring unnecessary stubbing is reported in various * cases where a strict style is chosen or assumed. * * @author Simon Baslé @@ -75,17 +78,19 @@ abstract static class BaseCase { @Test @SuppressWarnings("rawtypes") void unnecessaryStub() { - List list = Mockito.mock(List.class); - Mockito.when(list.get(Mockito.anyInt())).thenReturn(new Object()); + List list = mock(); + when(list.get(anyInt())).thenReturn(new Object()); } } @SpringJUnitConfig(Config.class) + @DirtiesContext @MockitoBeanSettings(Strictness.STRICT_STUBS) static class ExplicitStrictness extends BaseCase { } @SpringJUnitConfig(Config.class) + @DirtiesContext static class ImplicitStrictnessWithMockitoBean extends BaseCase { @MockitoBean @@ -93,4 +98,9 @@ static class ImplicitStrictnessWithMockitoBean extends BaseCase { DateTimeFormatter ignoredMock; } + @Configuration(proxyBeanMethods = false) + static class Config { + // no beans + } + }