Claude-skill-registry java-testing
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/java-testing" ~/.claude/skills/majiayu000-claude-skill-registry-java-testing && rm -rf "$T"
manifest:
skills/data/java-testing/SKILL.mdsource content
Java Testing
Guidelines for writing tests in Java projects using the Spock Framework and Groovy.
When to use this skill
- Writing new tests
- Reviewing test code
- Setting up test infrastructure
- Configuring Testcontainers
- Mocking dependencies in Spring Boot tests
- When asked to "improve test setup" or "run all tests and fix"
Skill Contents
Sections
- When to use this skill (L24-L32)
- Quick Start (L58-L78)
- Key Patterns (L79-L88)
- Mocking Patterns (L89-L124)
- Persistence Testing (L125-L140)
- References (L141-L148)
- Related Rules (L149-L153)
- Related Skills (L154-L159)
Available Resources
📚 references/ - Detailed documentation
- grpc testing
- junit5 migration
- spock patterns
- test setup workflow
- test utilities
- testcontainers setup
Quick Start
1. Test Structure
def "should do Y when X"() { given: // create test data when: // execute process then: // assert output where: // use test table if suited }
2. Test Naming
- Test files:
<ClassName>Spec.groovy - Test methods:
"should [expected behavior] when [condition]"
Key Patterns
| Pattern | When to Use |
|---|---|
| Spock Mock | Unit tests without Spring context |
| @SpringBean | Spring integration tests with mocks |
| @ServiceConnection | Testcontainers database connection |
| InProcessServer | gRPC client/server testing |
| Data Tables | Multiple test cases with same structure |
Mocking Patterns
Unit Tests (No Spring)
class SomeSpec extends Specification { SomeInterface someInterface = Mock() def "test method"() { given: def underTest = new ClassUnderTest(someInterface) when: // call method then: 1 * someInterface.someMethod("value") >> responseClass } }
Spring Integration Tests
@SpringBootTest class SomeSpec extends Specification { @SpringBean SomeInterface someInterface = Mock() def "test method"() { when: // call method then: 1 * someInterface.someMethod(_) >> { throw new RuntimeException() } } }
Persistence Testing
Use Testcontainers with
@ServiceConnection for database tests:
@Configuration class IntegrationTestConfiguration { @Bean @ServiceConnection PostgreSQLContainer<?> postgreSQLContainer() { return new PostgreSQLContainer<>("postgres:14-alpine") .withDatabaseName("test_db") } }
References
| Reference | Description |
|---|---|
| references/spock-patterns.md | Advanced Spock patterns |
| references/testcontainers-setup.md | Testcontainers configuration |
| references/grpc-testing.md | gRPC test patterns |
Related Rules
- java-testing-guidelines - Full testing reference
- java-flyway-migrations - Flyway for test schema
Related Skills
| Skill | Purpose |
|---|---|
| java-coverage | JaCoCo test coverage |
| gradle-standards | Test dependency bundles |