Java
Testing Java 21 Virtual Threads and Project Loom with JUnit 5
Java 21 made virtual threads a permanent feature (JEP 444), fundamentally changing how Java applications handle concurrency.
Java
Java 21 made virtual threads a permanent feature (JEP 444), fundamentally changing how Java applications handle concurrency.
Java
Helidon is Oracle's open-source Java microservices framework that comes in two flavors: Helidon SE (reactive, functional, no magic) and Helidon MP (MicroProfile-compliant, CDI, JAX-RS). Each flavor has its own testing approach, but both integrate cleanly with JUnit 5 and support Testcontainers for infrastructure dependencies. Understanding
ClickHouse
ClickHouse is the analytics database of choice for teams that need sub-second queries over billions of rows.
Neo4j
Graph databases require testing strategies that go beyond simple CRUD assertions.
Elasticsearch
Elasticsearch is notoriously difficult to test. Its distributed nature, complex query DSL, and stateful index management make traditional unit testing insufficient. This guide covers practical strategies for testing Elasticsearch applications—from spinning up real instances with Testcontainers to validating index mappings and query correctness. Why Elasticsearch Testing Is Hard Unlike
Cassandra
Apache Cassandra's wide-column model, tuneable consistency, and partition-key-driven design create unique testing challenges.
Data Engineering
Testing Apache Flink requires specialized tools at each layer: MiniClusterWithClientResource for topology-level tests, KeyedOneInputStreamOperatorTestHarness for stateful operators, and EmbeddedKafkaCluster for end-to-end integration. Event-time semantics and exactly-once guarantees demand explicit test harness control over watermarks and checkpoints. Key Takeaways Unit test operators in isolation. Use KeyedOneInputStreamOperatorTestHarness
Database
Flyway migrations can silently corrupt production databases if shipped without proper testing. This post covers a layered testing strategy: unit tests with H2 for fast feedback, Testcontainers for real-database fidelity, rollback testing, checksum validation, and CI pipeline integration. Key Takeaways Test migrations against a real database engine. H2 is
Testing
Apache PDFBox is an open-source Java library for reading and writing PDFs. Unlike iText (commercial license for production use), PDFBox is Apache-licensed. It's ideal for testing PDFs regardless of how they were generated — iText, wkhtmltopdf, Puppeteer, or any other tool. This guide shows how to parse,
Testing
iText 7 is the most widely used Java PDF generation library. Testing iText-generated PDFs requires writing to an in-memory stream, parsing the output with iText's PdfReader, and asserting on text content, layout, fonts, and structure. This guide covers JUnit 5 patterns for all of these. Key
Testing
ActiveMQ Classic provides an embedded broker you can start directly in your test JVM — no Docker, no external process. This makes JUnit tests fast and deterministic. This guide covers testing JMS queues and topics, transactional sending, and dead letter queue behavior using the embedded broker and Spring Boot's
Testing
Apache Pulsar testing requires a real broker for meaningful integration tests — the client library doesn't provide a simulation mode. Testcontainers solves this with an official Pulsar image that starts in seconds. This guide covers producer/consumer testing, schema validation, subscription types, and dead letter topic handling in Java