diff --git a/subprojects/junit-jupiter/src/test/java/org/mockitousage/ProductionCode.java b/subprojects/junit-jupiter/src/test/java/org/mockitousage/ProductionCode.java new file mode 100644 index 0000000000..7c1147501c --- /dev/null +++ b/subprojects/junit-jupiter/src/test/java/org/mockitousage/ProductionCode.java @@ -0,0 +1,11 @@ +package org.mockitousage; + +import java.util.function.Predicate; + +public class ProductionCode { + + @SuppressWarnings("ReturnValueIgnored") + public static void simpleMethod(Predicate mock, String argument) { + mock.test(argument); + } +} diff --git a/subprojects/junit-jupiter/src/test/java/org/mockitousage/StrictnessTest.java b/subprojects/junit-jupiter/src/test/java/org/mockitousage/StrictnessTest.java index 31a5d6a649..1b63d66cc4 100644 --- a/subprojects/junit-jupiter/src/test/java/org/mockitousage/StrictnessTest.java +++ b/subprojects/junit-jupiter/src/test/java/org/mockitousage/StrictnessTest.java @@ -21,7 +21,9 @@ import org.mockito.junit.jupiter.MockitoSettings; import org.mockito.quality.Strictness; +import java.util.Optional; import java.util.function.Function; +import java.util.function.Predicate; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass; @@ -162,6 +164,29 @@ void inherits_strictness_from_base_class() { assertThat(result.getStatus()).isEqualTo(TestExecutionResult.Status.SUCCESSFUL); } + @ExtendWith(MockitoExtension.class) + @MockitoSettings(strictness = Strictness.LENIENT) + static class LenientMockitoSettings { + + @Mock + private Predicate rootMock; + + @Test + void should_not_throw_on_potential_stubbing_issue() { + Mockito.doReturn(true).when(rootMock).test("Foo"); + + ProductionCode.simpleMethod(rootMock, "Bar"); + } + } + + @Test + void use_strictness_from_settings_annotation() { + TestExecutionResult result = invokeTestClassAndRetrieveMethodResult(LenientMockitoSettings.class); + + assertThat(result.getThrowable()).isEqualTo(Optional.empty()); + assertThat(result.getStatus()).isEqualTo(TestExecutionResult.Status.SUCCESSFUL); + } + private TestExecutionResult invokeTestClassAndRetrieveMethodResult(Class clazz) { LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request() .selectors(