Advanced module
Module 18: Testing, Delivery, and Runtime Operations
Work like a professional team by combining focused tests, build automation, containers, and CI/CD into a delivery workflow that is safer to change and easier to ship.
Module lessons
Module 18: Testing, Delivery, and Runtime Operations
Unit Testing with JUnit 5
Write unit tests that explain behavior clearly, fail helpfully, and support safer refactoring. This lesson covers test structure, naming, assertions, and why test readability is part of production quality, not a side issue.
Mocking with Mockito
Use Mockito to isolate collaborators when a true unit test needs control over dependencies, while avoiding over-mocking and fake complexity. You will learn what to stub, what to verify, and when a real collaborator is a better choice.
Build Automation with Maven and Gradle
Use Maven or Gradle as the repeatable build backbone of the project. This lesson covers dependencies, build lifecycles, wrappers, plugins, and the difference between “it works on my machine” and a build others can trust.
Docker Images and Java Containerization
Containerize Java applications in a way that supports repeatable builds, reasonable image size, and predictable runtime behavior. You will cover Dockerfiles, multi-stage builds, configuration, and the difference between packaging an app and operating it safely.
Code Quality Gates, CI, and Deployment Pipelines
Turn code changes into a repeatable delivery pipeline with checks that catch problems early. This lesson explains common CI stages, quality gates, artifact flow, and the practical difference between a team that builds manually and one that can ship safely on demand.
Mini-Project: Tested, Built, and Containerized Service
Bring the engineering workflow together by taking one service from source code to tests, build, container image, and pipeline. The value of this project is not new framework syntax; it is proving that the software can be changed and delivered with confidence.
Advertisement