Journal
Generating realistic test data with Java FakerQuality assurance teams in Brisbane, Sydney and Melbourne spend a disproportionate amount of time inventing names, addresses, and identifiers that feel…Testing Java Play Framework Applications With PlaySpecPlay Framework remains a quiet workhorse for Java backends, particularly inside teams that need hot reload, async-by-default controllers, and a small but…How to Use MockMvc to Test Spring MVC ControllersA Spring MVC controller sits at an important boundary in a Java application. It receives an HTTP request, binds input, validates data, invokes application…Reliable Microservice Integration Tests with Docker Compose and TestcontainersMicroservices make it possible to release small, independently deployable components, but their boundaries also create more ways for software to fail. A…Testing GraphQL APIs with Spring GraphQL and WebTestClient in practiceGraphQL has reshaped how many Australian engineering teams think about API contracts. Instead of a handful of REST endpoints that often return more data than…Java Thread Safety Testing with Concurrency LibrariesModern Java applications rarely run in isolation. A booking engine processing tour reservations from a Sydney data centre, a payments service clearing…Using Mutation Testing With PIT to Improve Java Test QualityA Java test suite can report excellent line coverage while still missing the defects that matter to customers. A test may execute a branch without checking its…Testing Custom Exceptions and Error Handling in Java REST ControllersA REST controller rarely fails in just one way. A request may contain malformed JSON, a valid identifier that does not exist, a business rule violation, or…How to Mock Logging Output in JUnit Tests with LogbackLogs are often treated as a side effect of application code, yet they can carry important behaviour: an audit event, a rejected request, a retry warning, or a…Testing Spring Boot Scheduled Tasks With TestSchedulerScheduled jobs are easy to write in Spring Boot and surprisingly easy to test badly. A method annotated with @Scheduled may run every few minutes, call an…