Cursor-rules-java 131-java-testing-unit-testing
Use when you need to review, improve, or write Java unit tests — including migrating from JUnit 4 to JUnit 5, adopting AssertJ for fluent assertions, structuring tests with Given-When-Then, ensuring test independence, applying parameterized tests, mocking dependencies with Mockito, verifying boundary conditions (RIGHT-BICEP, CORRECT, A-TRIP), leveraging JSpecify null-safety annotations, or eliminating testing anti-patterns such as reflection-based tests or shared mutable state. Part of the skills-for-java project
git clone https://github.com/jabrena/cursor-rules-java
T=$(mktemp -d) && git clone --depth=1 https://github.com/jabrena/cursor-rules-java "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/131-java-testing-unit-testing" ~/.claude/skills/jabrena-cursor-rules-java-131-java-testing-unit-testing && rm -rf "$T"
skills/131-java-testing-unit-testing/SKILL.mdJava Unit testing guidelines
Review and improve Java unit tests using modern JUnit 5, AssertJ, and Mockito best practices.
What is covered in this Skill?
- JUnit 5 annotations:
,@Test
,@BeforeEach
,@AfterEach
,@DisplayName
,@Nested@ParameterizedTest - AssertJ fluent assertions:
,assertThatassertThatThrownBy - Given-When-Then test structure, descriptive test naming, single-responsibility tests
- Test independence and isolated state
- Parameterized tests:
/@ValueSource
/@CsvSource@MethodSource - Mockito dependency mocking:
,@Mock
,@InjectMocksMockitoExtension - Code coverage guidance (JaCoCo), package-private test visibility
- Testing anti-patterns: reflection, shared state, hard-coded values, testing implementation details
- Error handling:
, exception messagesassertThatThrownBy - JSpecify null-safety:
,@NullMarked@Nullable - RIGHT-BICEP coverage principles, A-TRIP test quality, CORRECT boundary condition verification
Scope: The reference is organized by examples (good/bad code patterns) for each core area. Apply recommendations based on applicable examples.
Constraints
Before applying any unit test changes, ensure the project compiles. If compilation fails, stop immediately — do not proceed until resolved. After applying improvements, run full verification.
- MANDATORY: Run
or./mvnw compile
before applying any changemvn compile - SAFETY: If compilation fails, stop immediately and do not proceed — compilation failure is a blocking condition
- VERIFY: Run
or./mvnw clean verify
after applying improvementsmvn clean verify - BEFORE APPLYING: Read the reference for detailed examples, good/bad patterns, and constraints
When to use this skill
- Review Java code for unit tests
- Apply best practices for unit tests in Java code
Reference
For detailed guidance, examples, and constraints, see references/131-java-testing-unit-testing.md.