Agent Skills: Java Testing

>

testingID: bitsoex/bitso-java/java-testing

Install this agent skill to your local

pnpm dlx add-skill https://github.com/bitsoex/bitso-java/tree/HEAD/.claude/skills/java-testing

Skill Files

Browse the full folder contents for java-testing.

Download Skill

Loading file tree…

.claude/skills/java-testing/SKILL.md

Skill Metadata

Name
java-testing
Description
>

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

Available Resources

πŸ“š references/ - Detailed documentation


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

Related Skills

| Skill | Purpose | |-------|---------| | java-coverage | JaCoCo test coverage | | gradle-standards | Test dependency bundles |

<!-- AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY --> <!-- Source: bitsoex/ai-code-instructions β†’ java/skills/java-testing/SKILL.md --> <!-- To modify, edit the source file and run the distribution workflow -->