| name | springboot-verification |
| description | Verification loop for Spring Boot projects: build, static analysis, tests with coverage, security scans, and diff review before release or PR. |
Spring Boot Verification Loop
Run before PRs, after major changes, and pre-deploy.
When to Activate
- Before opening a pull request for a Spring Boot service
- After major refactoring or dependency upgrades
- Pre-deployment verification for staging or production
- Running full build → lint → test → security scan pipeline
- Validating test coverage meets thresholds
- After adding a new dependency to confirm no OWASP CVEs were introduced
- Reviewing a diff for leftover debug logging, unchecked exceptions, or misconfigured CORS before merge
Phase 1: Build
mvn -T 4 clean verify -DskipTests
./gradlew clean assemble -x test
If build fails, stop and fix.
Phase 2: Static Analysis
Maven (common plugins):
mvn -T 4 spotbugs:check pmd:check checkstyle:check
Gradle (if configured):
./gradlew checkstyleMain pmdMain spotbugsMain
Phase 3: Tests + Coverage
mvn -T 4 test
mvn jacoco:report
./gradlew test jacocoTestReport
Report:
- Total tests, passed/failed
- Coverage % (lines/branches)
Unit Tests
Test service logic in isolation with mocked dependencies:
{
UserRepository userRepository;
UserService userService;
{
(, );
(, , );
(userRepository.save(any(User.class))).thenReturn(expected);
userService.create(dto);
assertThat(result.name()).isEqualTo();
verify(userRepository).save(any(User.class));
}
{
(, );
(userRepository.existsByEmail(dto.email())).thenReturn();
assertThatThrownBy(() -> userService.create(dto))
.isInstanceOf(DuplicateEmailException.class);
}
}