diff --git a/settings.gradle b/settings.gradle index 67fdf19066..74b7a84452 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,6 +5,7 @@ include 'extTest' include 'kotlinTest' include 'android' include 'junit-jupiter' +include 'junitJupiterExtensionTest' rootProject.name = 'mockito' diff --git a/subprojects/junit-jupiter/src/main/java/org/mockito/junit/jupiter/MockitoExtension.java b/subprojects/junit-jupiter/src/main/java/org/mockito/junit/jupiter/MockitoExtension.java index 1ee5a3e02c..ad1d434d3d 100644 --- a/subprojects/junit-jupiter/src/main/java/org/mockito/junit/jupiter/MockitoExtension.java +++ b/subprojects/junit-jupiter/src/main/java/org/mockito/junit/jupiter/MockitoExtension.java @@ -66,9 +66,9 @@ public class MockitoExtension implements TestInstancePostProcessor,BeforeEachCal private final Strictness strictness; - // This constructor is invoked by JUnit Jupiter via reflection + // This constructor is invoked by JUnit Jupiter via reflection or ServiceLoader @SuppressWarnings("unused") - private MockitoExtension() { + public MockitoExtension() { this(Strictness.STRICT_STUBS); } diff --git a/subprojects/junitJupiterExtensionTest/junitJupiterExtensionTest.gradle b/subprojects/junitJupiterExtensionTest/junitJupiterExtensionTest.gradle new file mode 100644 index 0000000000..1761dcd46d --- /dev/null +++ b/subprojects/junitJupiterExtensionTest/junitJupiterExtensionTest.gradle @@ -0,0 +1,18 @@ +apply from: "$rootDir/gradle/dependencies.gradle" + +apply plugin: 'java' +description = "End-to-end tests for automatic registration of MockitoExtension." + +sourceCompatibility = 1.8 + +dependencies { + testCompile project(":junit-jupiter") + testCompile libraries.assertj + testCompile libraries.junitPlatformLauncher + testCompile libraries.junitJupiterApi + testRuntime libraries.junitJupiterEngine +} + +test { + useJUnitPlatform() +} diff --git a/subprojects/junitJupiterExtensionTest/src/test/java/org/mockitousage/NoExtendsTest.java b/subprojects/junitJupiterExtensionTest/src/test/java/org/mockitousage/NoExtendsTest.java new file mode 100644 index 0000000000..a0d545c6b1 --- /dev/null +++ b/subprojects/junitJupiterExtensionTest/src/test/java/org/mockitousage/NoExtendsTest.java @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2018 Mockito contributors + * This program is made available under the terms of the MIT License. + */ +package org.mockitousage; + + +import java.util.List; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.when; + +class NoExtendsTest { + + @Mock + private List mock; + + @Test + void runs() { + when(mock.get(0)).thenReturn("foo"); + assertThat(mock.get(0)).isEqualTo("foo"); + } +} diff --git a/subprojects/junitJupiterExtensionTest/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension b/subprojects/junitJupiterExtensionTest/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension new file mode 100644 index 0000000000..02593efe36 --- /dev/null +++ b/subprojects/junitJupiterExtensionTest/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension @@ -0,0 +1 @@ +org.mockito.junit.jupiter.MockitoExtension diff --git a/subprojects/junitJupiterExtensionTest/src/test/resources/junit-platform.properties b/subprojects/junitJupiterExtensionTest/src/test/resources/junit-platform.properties new file mode 100644 index 0000000000..25ce5c9844 --- /dev/null +++ b/subprojects/junitJupiterExtensionTest/src/test/resources/junit-platform.properties @@ -0,0 +1 @@ +junit.jupiter.extensions.autodetection.enabled = true