springboot-tdd_skill

This skill guides Spring Boot TDD workflows with JUnit 5, Mockito, MockMvc, Testcontainers, and JaCoCo to ensure fast, reliable tests.
  • JavaScript

46.5k

GitHub Stars

1

Bundled Files

3 weeks ago

Catalog Refreshed

2 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstart where the catalogue uses aiagentskills.

npx veilstart add skill affaan-m/everything-claude-code --skill springboot-tdd

  • SKILL.md3.7 KB

Overview

This skill codifies a practical TDD workflow for Spring Boot services using JUnit 5, Mockito, MockMvc, Testcontainers, and JaCoCo. It guides you to write failing tests first, implement minimal code to pass, and enforce coverage and reliability. The goal is repeatable, fast, and maintainable test suites targeting 80%+ coverage for unit and integration tests.

How this skill works

The skill lays out patterns and example tests for unit, web layer, integration, and persistence testing. It recommends tooling and configurations: Mockito for unit doubles, MockMvc for controller tests, @SpringBootTest and @DataJpaTest for integration and repository scopes, Testcontainers for realistic databases, and JaCoCo to measure coverage. It also prescribes assertions, test data builders, and CI commands to run tests and reports.

When to use it

  • Adding a new endpoint or feature to a Spring Boot service
  • Fixing bugs or refactoring existing code safely
  • Introducing data access or security logic
  • Ensuring reliable behavior before merging to main
  • Setting up CI test and coverage verification

Best practices

  • Write tests first and let them fail, then implement minimal code to pass
  • Keep tests fast, isolated, and deterministic; avoid flaky external dependencies by using Testcontainers or mocks
  • Follow Arrange-Act-Assert and prefer explicit stubbing over partial mocks
  • Use AssertJ for readable assertions and jsonPath for JSON responses
  • Use parameterized tests for input variants and test data builders to simplify setup
  • Enforce coverage with JaCoCo and run tests in CI (mvn verify or ./gradlew test jacocoTestReport)

Example use cases

  • Unit-test a service method with Mockito and @ExtendWith(MockitoExtension.class)
  • Test a REST controller with @WebMvcTest and MockMvc to validate status and JSON shape
  • Run end-to-end behavior checks with @SpringBootTest and AutoConfigureMockMvc in an isolated test profile
  • Validate JPA repositories with @DataJpaTest backed by Testcontainers Postgres
  • Add JaCoCo to build to fail the pipeline when coverage drops below the team threshold

FAQ

Use @DynamicPropertySource to inject container JDBC/Redis URLs into the Spring context so beans pick up the runtime container endpoints.

What scope should I prefer for fast feedback?

Favor unit tests (JUnit + Mockito) for most logic. Use Web layer tests (@WebMvcTest) for controller behavior and run integration tests selectively to cover end-to-end flows and persistence.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational