Claude-skill-registry junit-core

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

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/junit-core" ~/.claude/skills/majiayu000-claude-skill-registry-junit-core && rm -rf "$T"
manifest: skills/data/junit-core/SKILL.md
source content

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

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

AAA Pattern (Arrange-Act-Assert)

@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

// 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

StandardPurpose
testing-junit-core.mdTest structure, AAA pattern, naming
coverage-analysis-pattern.mdCoverage analysis and improvement