springboot-tdd
Test-driven development for Spring Boot using JUnit 5, Mockito, MockMvc, Testcontainers, and JaCoCo. Use when adding features, fixing bugs, or refactoring.
By affaan-m · 2,902 installs
npx skills add affaan-m/ecc --skill springboot-tdd
Source repository · Upstream listing
Spring Boot TDD Workflow
TDD guidance for Spring Boot services with 80%+ coverage (unit + integration).
When to Use
New features or endpoints
Bug fixes or refactors
Adding data access logic or security rules
Workflow
1) Write tests first (they should fail)
2) Implement minimal code to pass
3) Refactor with tests green
4) Enforce coverage (JaCoCo)
Unit Tests (JUnit 5 + Mockito)
Patterns:
Arrange Act Assert
Avoid partial mocks; prefer explicit stubbing
Use @ParameterizedTest for variants
Web Layer Tests (MockMvc)
Integration Tests (SpringBootTest)
Persistence Tests (DataJpaTest)
Testcontainers
Use reusable containers for Postgres/Redis to mirror production
Wire via @DynamicPropertySource to inject JDBC URLs into Spring context
Coverage (JaCoCo)
Maven snippet:
Assertions
Prefer AssertJ ( assertThat ) for readability
For JSON responses, use jsonPath
For exceptions: assertThatThrownBy(...)
Test Data Builders
CI Commands
Maven: mvn T 4 test or mvn verify
Gradle: ./gradlew test jacocoTestReport
Remember : Keep tests fast, isolated, and deterministic. Test behavior, not implementation details.