Project
Java microservice test harness
Java microservice with a REST API and a real PostgreSQL database, designed as a reproducible testing environment to validate functional behaviour, integration and quality in a production-like context.
Overview
Java microservice with a REST API and real PostgreSQL persistence, designed to validate correctness, reproducibility and end-to-end testing under production-like conditions. The project manages the schema exclusively with Flyway, runs integration tests with RestAssured and Testcontainers, verifies idempotency and error cases, and applies quality gates in GitHub Actions with Spotless and JaCoCo.
Stack: Java, Spring Boot, PostgreSQL, Flyway, JPA, JUnit 5, RestAssured, Testcontainers, Maven, JaCoCo, GitHub Actions
What it does
The project aims to avoid overly simplified or unreliable tests on backend services. To achieve this, it works with real persistence, a versioned schema and a workflow that makes it possible to verify responses, errors and idempotency without relying on test doubles or artificial configurations.
How it is built
The solution is built with Spring Boot and JPA on PostgreSQL, with the schema managed exclusively through Flyway. The API exposes REST operations and the project relies on Maven, JaCoCo and a structure designed to run repeatable tests with a real database started on demand.
What it validates or automates
Integration tests use RestAssured and Testcontainers to start PostgreSQL at runtime and validate end-to-end scenarios against the service. The workflow checks correct responses, error cases and persistent idempotency, and in CI applies quality gates with Spotless, automated tests and JaCoCo coverage in GitHub Actions.
Key points
- Spring Boot REST API with real PostgreSQL persistence and a schema managed only with Flyway.
- End-to-end tests with RestAssured and Testcontainers against a database started at runtime.
- Validation of idempotency, error cases and CI quality gates with Spotless and JaCoCo.