AI-powered learning
Save this course
Test-Driven Development in Java
Gain insights into test-driven development and hexagonal architecture. Learn about uncovering design flaws, using SOLID principles, and integrating domain logic with databases and web layers for defect-free code.
4.6
131 Lessons
32h
Join 2.9 million developers at
Join 2.9 million developers at
LEARNING OBJECTIVES
- An understanding of the need for automated testing and test-driven development (TDD)
- The ability to write well-engineered and well-tested code
- Working knowledge of TDD techniques such as SOLID principles, hexagonal architecture, and test doubles
- Hands-on experience writing integration tests to test-drive the database and API implementation for a sample application
Learning Roadmap
2.
Building the Case for TDD
Building the Case for TDD
Walk through the impact of bad code and the benefits of Test-Driven Development.
3.
Using TDD to Create Good Code
Using TDD to Create Good Code
6 Lessons
6 Lessons
Examine how TDD fosters high-quality code, prevents logic flaws, and documents effectively.
4.
Dispelling Common Myths about TDD
Dispelling Common Myths about TDD
8 Lessons
8 Lessons
Grasp the fundamentals of dispelling myths to appreciate TDD's benefits and efficacy.
5.
Building an Application Using TDD
Building an Application Using TDD
4 Lessons
4 Lessons
Solve problems in iterative development using TDD, focusing on agile methods and user feedback.
6.
Writing Our First Test
Writing Our First Test
12 Lessons
12 Lessons
See how it works to write, optimize, and validate unit tests with TDD principles.
7.
Following the Rhythms of TDD
Following the Rhythms of TDD
9 Lessons
9 Lessons
Build on the Test-Driven Development (TDD) cycle to refine code, enhance applications, and validate functionality.
8.
Driving Design—TDD and SOLID
Driving Design—TDD and SOLID
12 Lessons
12 Lessons
Try out TDD techniques and apply SOLID principles to design flexible, maintainable Java code.
9.
Test Doubles—Stubs and Mocks
Test Doubles—Stubs and Mocks
13 Lessons
13 Lessons
Walk through using stubs and mocks to facilitate reliable and maintainable unit tests in Java.
10.
Hexagonal Architecture—Decoupling External Systems
Hexagonal Architecture—Decoupling External Systems
10 Lessons
10 Lessons
Examine hexagonal architecture to decouple systems, enhancing testability, maintainability, and robust software design.
11.
FIRST Tests and the Test Pyramid
FIRST Tests and the Test Pyramid
8 Lessons
8 Lessons
Break down complex ideas on FIRST tests, the test pyramid, and CI/CD pipelines.
12.
Exploring TDD with Quality Assurance
Exploring TDD with Quality Assurance
7 Lessons
7 Lessons
Map out the steps for integrating TDD with quality assurance and manual testing methods.
13.
Test First, Test Later, Test Never
Test First, Test Later, Test Never
7 Lessons
7 Lessons
Focus on TDD principles, testing approaches, and using hexagonal architecture for efficient software testing.
14.
Driving the Domain Layer
Driving the Domain Layer
12 Lessons
12 Lessons
Master the steps to apply Test-Driven Development in creating robust game logic.
15.
Driving the Database Layer
Driving the Database Layer
5 Lessons
5 Lessons
Try out database integration using DBRider and Jdbi for test-driven development in Java.
16.
Driving the Web Layer
Driving the Web Layer
9 Lessons
9 Lessons
Unpack the core of developing and testing web endpoints for a microservice architecture.
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Complete more lessons to unlock your certificate
Developed by MAANG Engineers
ABOUT THIS COURSE
Test-driven development (TDD) and hexagonal architecture enable developers to engineer code that is known to work and easy to work with. The techniques described in this course enable code to be delivered to production with few defects and a structure that can be easily and safely changed.
You’ll begin by learning the importance of test-driven development (TDD) and its costs and benefits, with examples of bad code and its impact on team performance. You’ll learn how good code and TDD can uncover design and logic flaws early. You’ll also learn how SOLID principles and hexagonal architecture create well-engineered, testable code and how test doubles manage external dependencies. Finally, you’ll integrate the sample application’s domain logic with the database and web layers.
By the end of this course, you’ll have mastered testing complexities and learned to integrate code with external systems with a deep understanding of practical techniques to elevate your development practices.
ABOUT THE AUTHOR
Packt
A tech learning platform that provides online courses, eBooks, videos, and other resources to help individuals and organizations stay ahead of emerging and popular technologies.
Trusted by 2.9 million developers working at companies
A
Anthony Walker
@_webarchitect_
E
Evan Dunbar
ML Engineer
S
Software Developer
Carlos Matias La Borde
S
Souvik Kundu
Front-end Developer
V
Vinay Krishnaiah
Software Developer
Built for 10x Developers
No Passive Learning
Learn by building with project-based lessons and in-browser code editor


Personalized Roadmaps
The platform adapts to your strengths & skills gaps as you go


Future-proof Your Career
Get hands-on with in-demand skills


AI Code Mentor
Write better code with AI feedback, smart debugging, and "Ask AI"




MAANG+ Interview Prep
AI Mock Interviews simulate every technical loop at top companies


Free Resources