-
Continue reading →: Black Box, White Box, and Gray Box Testing
Black Box Testing What it is: Testing the application without knowledge of its internal code or structure. The tester only sees inputs and outputs. Focus: Functionality, not implementation. Key points: Use it when: White Box Testing What it is: Testing with full knowledge of the internal code, logic, and structure.…
-
Continue reading →: Testing HTTP Clients in Java with WireMock and Spring Boot
When a Spring Boot application calls an external REST API, integration tests face a familiar problem: the real service might be slow, unavailable, or simply impossible to control. WireMock solves this by running a local HTTP server that simulates the external API. You define stubs — rules that say „if…
-
Continue reading →: GitLab Pipelines Explained
The Idea Every time you push code, GitLab runs a set of automated tasks for you — testing, building, deploying — without you lifting a finger. Key Terms Pipeline — the full list of tasks that runs when you push code. Think of it as the to-do list. Job —…
-
Continue reading →: Cucumber and Java
Cucumber is a tool for behavior-driven development (BDD): you describe how a feature should behave in plain language (Gherkin), and Java „step definitions“ turn that language into executable test code. This post walks through a minimal but realistic setup: a Spring Boot 4 service with default, dev, and mock profiles,…
-
Continue reading →: OpenShift Routes: exposing your app to the world
In OpenShift, a Route is an object that exposes a service to traffic coming from outside the cluster. OpenShift manages routing through a built-in component called the HAProxy-based Router. It watches for Route objects and automatically configures itself to forward traffic to the right service. A simple example Imagine you have a web…
-
Continue reading →: Spring vs Maven Profile in a Java/Spring Project
Every application needs at least two environments: one where you can break things safely, and one where you absolutely cannot. Managing those differences through manual file swaps or hardcoded flags is error-prone. Profiles solve this cleanly — you declare the differences, and the framework picks the right one at startup.…
-
Continue reading →: Was ist neu in Spring Boot 4?
Spring Boot 4 wurde im 2025 veröffentlicht und baut auf Spring Framework 7. Es ist der Beginn einer neuen Generation – schlanker, typsicherer und produktionsreifer als je zuvor. Dependency xml Mindest-Java-Version: 17. Empfohlen: Java 25. 1. HTTP Service Clients – kein Boilerplate mehr Früher schrieb man für jeden externen REST-Aufruf…
-
Continue reading →: BDD Test mit JBehave, Java und Spring
BDD ermöglicht es, fachliche Anforderungen direkt als ausführbare Tests zu formulieren. Dieser Post zeigt, wie man JBehave mit Spring 3 in einem minimalen Beispiel einsetzt. Abhängigkeiten (Maven) pom.xml Die Story Stories werden in einfachem Englisch (oder Deutsch) verfasst und in src/test/resources/stories/ abgelegt. Datei: create_user.story DTO java Service java Die Step-Definitionen…
-
Continue reading →: Metrics & Logs: Prometheus and Grafana & Logstash with Spring Boot
This post walks through wiring up a Spring Boot app to emit metrics to Prometheus, visualise them in Grafana, ship structured logs to Elasticsearch via Logstash, and view them in Kibana — plus one alert rule to fire when error rates spike. Pom.xml setup: Application properties: This exposes the Prometheus…
-
Continue reading →: Clean Code in Java, Teil 3
Stepdown Rule: Code von oben nach unten lesbar strukturieren Die Stepdown Rule (Robert C. Martin): Methoden sollen in der Reihenfolge stehen, wie sie aufgerufen werden – oben die übergeordnete Logik, darunter die Details. Lesbarkeit: Code liest sich wie ein Artikel – Überschrift, dann Details. Man muss nicht scrollen, um den…
