Agent skill

junit-core

JUnit 5 core testing patterns with AAA structure, test organization, and coverage standards

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/junit-core

SKILL.md

JUnit Core Skill

REFERENCE MODE: This skill provides reference material. Load specific standards on-demand based on current task.

JUnit 5 testing standards for general Java projects. This skill covers test structure, naming conventions, coverage requirements, and the AAA (Arrange-Act-Assert) pattern.

Prerequisites

This skill applies to Java projects using JUnit 5:

  • org.junit.jupiter:junit-jupiter (JUnit 5)

Workflow

Step 1: Load Core Testing Standards

CRITICAL: Load this standard for any testing work.

Read: standards/testing-junit-core.md

This provides foundational rules for:

  • Test class requirements (1:1 mapping with production classes)
  • AAA pattern (Arrange-Act-Assert)
  • Coverage requirements (80% line/branch minimum)
  • @DisplayName usage

Step 2: Load Coverage Analysis (As Needed)

Coverage Analysis (load for coverage work):

Read: standards/coverage-analysis-pattern.md

Use when: Analyzing test coverage or improving coverage metrics.

Key Rules Summary

Test Class Requirements

java
// CORRECT - One test class per production class
// TokenValidator.java → TokenValidatorTest.java
// UserService.java → UserServiceTest.java

AAA Pattern (Arrange-Act-Assert)

java
@Test
@DisplayName("Should validate token with correct issuer")
void shouldValidateTokenWithCorrectIssuer() {
    // Arrange
    String issuer = "https://example.com";
    Token token = createTokenWithIssuer(issuer);

    // Act
    ValidationResult result = validator.validate(token);

    // Assert
    assertTrue(result.isValid());
    assertEquals(issuer, result.getIssuer());
}

DisplayName Annotations

java
// CORRECT - Descriptive test names
@Test
@DisplayName("Should throw exception when token is null")
void shouldThrowExceptionWhenTokenIsNull() { }

@Test
@DisplayName("Should return empty when no users found")
void shouldReturnEmptyWhenNoUsersFound() { }

Coverage Requirements

  • Minimum 80% line coverage
  • Minimum 80% branch coverage
  • Critical paths: 100% coverage
  • All public APIs must be tested

Related Skills

  • pm-dev-java:junit-integration - Maven integration testing
  • pm-dev-java-cui:cui-testing - CUI test generator framework
  • pm-dev-java:java-core - Core Java patterns

Standards Reference

Standard Purpose
testing-junit-core.md Test structure, AAA pattern, naming
coverage-analysis-pattern.md Coverage analysis and improvement

Didn't find tool you were looking for?

Be as detailed as possible for better results