diff --git a/qulice-maven-plugin/src/it/multi-module/mod-alpha/src/test/java/com/qulice/plugin/alpha/MainTest.java b/qulice-maven-plugin/src/it/multi-module/mod-alpha/src/test/java/com/qulice/plugin/alpha/MainTest.java index 3d09a8d51..9d0e94946 100644 --- a/qulice-maven-plugin/src/it/multi-module/mod-alpha/src/test/java/com/qulice/plugin/alpha/MainTest.java +++ b/qulice-maven-plugin/src/it/multi-module/mod-alpha/src/test/java/com/qulice/plugin/alpha/MainTest.java @@ -31,19 +31,19 @@ import org.hamcrest.MatcherAssert; import org.hamcrest.Matchers; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Simple test of the Main class. * @since 1.0 */ -public final class MainTest { +final class MainTest { /** * Simple testing. */ @Test - public void testSquare() { + void testSquare() { MatcherAssert.assertThat(1, Matchers.is(Main.square(1))); MatcherAssert.assertThat(4, Matchers.is(Main.square(2))); } diff --git a/qulice-pmd/src/main/resources/com/qulice/pmd/ruleset.xml b/qulice-pmd/src/main/resources/com/qulice/pmd/ruleset.xml index 931b92ec0..655a74ba6 100644 --- a/qulice-pmd/src/main/resources/com/qulice/pmd/ruleset.xml +++ b/qulice-pmd/src/main/resources/com/qulice/pmd/ruleset.xml @@ -218,4 +218,41 @@ OF THE POSSIBILITY OF SUCH DAMAGE. + + + Reports JUnit 5 test classes and methods that are not package-private. + Contrary to JUnit 4 tests, which required public visibility to be run by the engine, + JUnit 5 tests can also be run if they’re package-private. + Marking them as such is a good practice to limit their visibility. + + 3 + + + + + + + + diff --git a/qulice-pmd/src/test/java/com/qulice/pmd/PmdValidatorTest.java b/qulice-pmd/src/test/java/com/qulice/pmd/PmdValidatorTest.java index 2e57d0bfb..111987574 100644 --- a/qulice-pmd/src/test/java/com/qulice/pmd/PmdValidatorTest.java +++ b/qulice-pmd/src/test/java/com/qulice/pmd/PmdValidatorTest.java @@ -613,4 +613,18 @@ public void allowsDuplicateLiteralsInAnnotations() throws Exception { ) ).validate(); } + + /** + * PmdValidator can allow only package private methods, + * annotated @Test, @RepeatedTest, @TestFactory, @TestTemplate or @ParameterizedTest. + * @throws Exception If something wrong happens inside. + */ + @Test + public void testShouldBePackagePrivate() throws Exception { + new PmdAssert( + "TestShouldBePackagePrivate.java", + Matchers.is(false), + Matchers.containsString("JUnit5TestShouldBePackagePrivate") + ).validate(); + } } diff --git a/qulice-pmd/src/test/resources/com/qulice/pmd/AllowAssertFail.java b/qulice-pmd/src/test/resources/com/qulice/pmd/AllowAssertFail.java index 92cd9a50e..5f470a304 100644 --- a/qulice-pmd/src/test/resources/com/qulice/pmd/AllowAssertFail.java +++ b/qulice-pmd/src/test/resources/com/qulice/pmd/AllowAssertFail.java @@ -4,10 +4,10 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -public class AllowAssertFail { +class AllowAssertFail { @Test - public void prohibitPlainJunitAssertionsInTests() throws Exception { + void prohibitPlainJunitAssertionsInTests() throws Exception { Matchers.assertThat("errorMessage", "expected", Matchers.is("actual")); Assertions.fail("fail test"); } diff --git a/qulice-pmd/src/test/resources/com/qulice/pmd/JunitStaticPublicMethods.java b/qulice-pmd/src/test/resources/com/qulice/pmd/JunitStaticPublicMethods.java index 09b86f95f..510e5e54e 100644 --- a/qulice-pmd/src/test/resources/com/qulice/pmd/JunitStaticPublicMethods.java +++ b/qulice-pmd/src/test/resources/com/qulice/pmd/JunitStaticPublicMethods.java @@ -2,12 +2,12 @@ import org.junit.AfterClass; import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Collection; import java.util.Collections; -public class SomeTest { +class SomeTest { @BeforeClass public static void beforeClass(){ @@ -15,7 +15,7 @@ public static void beforeClass(){ } @Test - public void emptyTest(){ + void emptyTest(){ //test something } diff --git a/qulice-pmd/src/test/resources/com/qulice/pmd/TestShouldBePackagePrivate.java b/qulice-pmd/src/test/resources/com/qulice/pmd/TestShouldBePackagePrivate.java new file mode 100644 index 000000000..b3c3f17cf --- /dev/null +++ b/qulice-pmd/src/test/resources/com/qulice/pmd/TestShouldBePackagePrivate.java @@ -0,0 +1,16 @@ +package com.qulice.pmd; + +import org.junit.jupiter.api.Test; + +public class SomeTest { + + @Test + public void testOne() { + // empty body + } + + @Test + public void testTwo() { + // empty body + } +}