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