diff --git a/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected index 5de435a0e74..e488635f436 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected @@ -36,8 +36,8 @@ ql/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql ql/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql +ql/java/ql/src/Likely Bugs/Frameworks/JUnit/ExcessivePublicMethodMocking.ql ql/java/ql/src/Likely Bugs/Frameworks/JUnit/JUnit5MissingNestedAnnotation.ql -ql/java/ql/src/Likely Bugs/Frameworks/JUnit/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig.ql ql/java/ql/src/Likely Bugs/Inheritance/NoNonFinalInConstructor.ql ql/java/ql/src/Likely Bugs/Likely Typos/ContainerSizeCmpZero.ql ql/java/ql/src/Likely Bugs/Likely Typos/ContradictoryTypeChecks.ql diff --git a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected index 791f64cd672..4438c259e7a 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected @@ -34,8 +34,8 @@ ql/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql ql/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql +ql/java/ql/src/Likely Bugs/Frameworks/JUnit/ExcessivePublicMethodMocking.ql ql/java/ql/src/Likely Bugs/Frameworks/JUnit/JUnit5MissingNestedAnnotation.ql -ql/java/ql/src/Likely Bugs/Frameworks/JUnit/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig.ql ql/java/ql/src/Likely Bugs/Inheritance/NoNonFinalInConstructor.ql ql/java/ql/src/Likely Bugs/Likely Typos/ContainerSizeCmpZero.ql ql/java/ql/src/Likely Bugs/Likely Typos/ContradictoryTypeChecks.ql diff --git a/java/ql/src/Likely Bugs/Frameworks/JUnit/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig.md b/java/ql/src/Likely Bugs/Frameworks/JUnit/ExcessivePublicMethodMocking.md similarity index 89% rename from java/ql/src/Likely Bugs/Frameworks/JUnit/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig.md rename to java/ql/src/Likely Bugs/Frameworks/JUnit/ExcessivePublicMethodMocking.md index b0f2f8d1aa7..d932df25116 100644 --- a/java/ql/src/Likely Bugs/Frameworks/JUnit/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig.md +++ b/java/ql/src/Likely Bugs/Frameworks/JUnit/ExcessivePublicMethodMocking.md @@ -1,6 +1,6 @@ ## Overview -Mocking methods of a class is necessary for unit tests to run without overhead caused by expensive I/O operations. However, when a unit test ends up mocking all non-private methods of a class, it may indicate that the test is too complicated, possibly because it is trying to test multiple things at once. Such extensive mocking is likely a signal that the scope of the unit test is reaching beyond a single unit of functionality. +Mocking methods of a class is necessary for unit tests to run without overhead caused by expensive I/O operations. However, when a unit test ends up mocking all public methods of a class, it may indicate that the test is too complicated, possibly because it is trying to test multiple things at once. Such extensive mocking is likely a signal that the scope of the unit test is reaching beyond a single unit of functionality. ## Recommendation diff --git a/java/ql/src/Likely Bugs/Frameworks/JUnit/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig.ql b/java/ql/src/Likely Bugs/Frameworks/JUnit/ExcessivePublicMethodMocking.ql similarity index 90% rename from java/ql/src/Likely Bugs/Frameworks/JUnit/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig.ql rename to java/ql/src/Likely Bugs/Frameworks/JUnit/ExcessivePublicMethodMocking.ql index f7a75aa94fe..5c61cd23979 100644 --- a/java/ql/src/Likely Bugs/Frameworks/JUnit/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig.ql +++ b/java/ql/src/Likely Bugs/Frameworks/JUnit/ExcessivePublicMethodMocking.ql @@ -1,7 +1,8 @@ /** - * @id java/mocking-all-non-private-methods-means-unit-test-is-too-big - * @name Mocking all non-private methods of a class may indicate the unit test is testing too much - * @description Mocking all non-private methods provided by a class might indicate the unit test + * @id java/excessive-public-method-mocking + * @previous-id java/mocking-all-non-private-methods-means-unit-test-is-too-big + * @name Mocking all public methods of a class may indicate the unit test is testing too much + * @description Mocking all public methods provided by a class might indicate the unit test * aims to test too many things. * @kind problem * @precision high diff --git a/java/ql/test/query-tests/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig/Employee.java b/java/ql/test/query-tests/ExcessivePublicMethodMocking/Employee.java similarity index 100% rename from java/ql/test/query-tests/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig/Employee.java rename to java/ql/test/query-tests/ExcessivePublicMethodMocking/Employee.java diff --git a/java/ql/test/query-tests/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig/EmployeeRecord.java b/java/ql/test/query-tests/ExcessivePublicMethodMocking/EmployeeRecord.java similarity index 100% rename from java/ql/test/query-tests/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig/EmployeeRecord.java rename to java/ql/test/query-tests/ExcessivePublicMethodMocking/EmployeeRecord.java diff --git a/java/ql/test/query-tests/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig/EmployeeStatus.java b/java/ql/test/query-tests/ExcessivePublicMethodMocking/EmployeeStatus.java similarity index 100% rename from java/ql/test/query-tests/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig/EmployeeStatus.java rename to java/ql/test/query-tests/ExcessivePublicMethodMocking/EmployeeStatus.java diff --git a/java/ql/test/query-tests/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig.expected b/java/ql/test/query-tests/ExcessivePublicMethodMocking/ExcessivePublicMethodMocking.expected similarity index 100% rename from java/ql/test/query-tests/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig.expected rename to java/ql/test/query-tests/ExcessivePublicMethodMocking/ExcessivePublicMethodMocking.expected diff --git a/java/ql/test/query-tests/ExcessivePublicMethodMocking/ExcessivePublicMethodMocking.qlref b/java/ql/test/query-tests/ExcessivePublicMethodMocking/ExcessivePublicMethodMocking.qlref new file mode 100644 index 00000000000..4e599773e32 --- /dev/null +++ b/java/ql/test/query-tests/ExcessivePublicMethodMocking/ExcessivePublicMethodMocking.qlref @@ -0,0 +1,2 @@ +query: Likely Bugs/Frameworks/JUnit/ExcessivePublicMethodMocking.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig/TestORM.java b/java/ql/test/query-tests/ExcessivePublicMethodMocking/TestORM.java similarity index 100% rename from java/ql/test/query-tests/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig/TestORM.java rename to java/ql/test/query-tests/ExcessivePublicMethodMocking/TestORM.java diff --git a/java/ql/test/query-tests/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig/options b/java/ql/test/query-tests/ExcessivePublicMethodMocking/options similarity index 100% rename from java/ql/test/query-tests/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig/options rename to java/ql/test/query-tests/ExcessivePublicMethodMocking/options diff --git a/java/ql/test/query-tests/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig.qlref b/java/ql/test/query-tests/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig.qlref deleted file mode 100644 index 6d22c90940b..00000000000 --- a/java/ql/test/query-tests/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig.qlref +++ /dev/null @@ -1,2 +0,0 @@ -query: Likely Bugs/Frameworks/JUnit/MockingAllNonPrivateMethodsMeansUnitTestIsTooBig.ql -postprocess: utils/test/InlineExpectationsTestQuery.ql