java-testing
SKILL.md
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
- Quick Start
- Key Patterns
- Mocking Patterns
- Persistence Testing
- References
- Related Rules
- Related Skills
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 |
Weekly Installs
11
Repository
bitsoex/bitso-javaGitHub Stars
36
First Seen
Jan 23, 2026
Security Audits
Installed on
claude-code9
gemini-cli7
codex7
opencode7
antigravity6
windsurf6