4.7
Intermediate
32h
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.
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.
Test-driven development (TDD) and hexagonal architecture enable developers to engineer code that is known to work and easy to wo...Show More
WHAT YOU'LL LEARN
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
An understanding of the need for automated testing and test-driven development (TDD)
Show more
Content
1.
Getting Started
1 Lessons
Get familiar with essential TDD techniques and principles for robust Java development.
2.
Building the Case for TDD
6 Lessons
Walk through the impact of bad code and the benefits of Test-Driven Development.
3.
Using TDD to Create Good Code
6 Lessons
Examine how TDD fosters high-quality code, prevents logic flaws, and documents effectively.
4.
Dispelling Common Myths about TDD
8 Lessons
Grasp the fundamentals of dispelling myths to appreciate TDD's benefits and efficacy.
5.
Building an Application Using TDD
4 Lessons
Solve problems in iterative development using TDD, focusing on agile methods and user feedback.
6.
Writing Our First Test
12 Lessons
See how it works to write, optimize, and validate unit tests with TDD principles.
7.
Following the Rhythms of TDD
9 Lessons
Build on the Test-Driven Development (TDD) cycle to refine code, enhance applications, and validate functionality.
8.
Driving Design—TDD and SOLID
12 Lessons
Try out TDD techniques and apply SOLID principles to design flexible, maintainable Java code.
9.
Test Doubles—Stubs and Mocks
13 Lessons
Walk through using stubs and mocks to facilitate reliable and maintainable unit tests in Java.
10.
Hexagonal Architecture—Decoupling External Systems
10 Lessons
Examine hexagonal architecture to decouple systems, enhancing testability, maintainability, and robust software design.
11.
FIRST Tests and the Test Pyramid
8 Lessons
Break down complex ideas on FIRST tests, the test pyramid, and CI/CD pipelines.
12.
Exploring TDD with Quality Assurance
7 Lessons
Map out the steps for integrating TDD with quality assurance and manual testing methods.
13.
Test First, Test Later, Test Never
7 Lessons
Focus on TDD principles, testing approaches, and using hexagonal architecture for efficient software testing.
14.
Driving the Domain Layer
12 Lessons
Master the steps to apply Test-Driven Development in creating robust game logic.
15.
Driving the Database Layer
5 Lessons
Try out database integration using DBRider and Jdbi for test-driven development in Java.
16.
Driving the Web Layer
9 Lessons
Unpack the core of developing and testing web endpoints for a microservice architecture.
17.
Wrap Up
1 Lessons
Explore the significance of TDD, SOLID principles, and test automation in real-world Java projects.
18.
Appendix
1 Lessons
Find out about setting up a Java development environment with IntelliJ, JDK, JUnit, and Gradle.
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:
Developed by MAANG Engineers
Trusted by 2.8 million developers working at companies
"These are high-quality courses. Trust me. I own around 10 and the price is worth it for the content quality. EducativeInc came at the right time in my career. I'm understanding topics better than with any book or online video tutorial I've done. Truly made for developers. Thanks"
Anthony Walker
@_webarchitect_
"Just finished my first full #ML course: Machine learning for Software Engineers from Educative, Inc. ... Highly recommend!"
Evan Dunbar
ML Engineer
"You guys are the gold standard of crash-courses... Narrow enough that it doesn't need years of study or a full blown book to get the gist, but broad enough that an afternoon of Googling doesn't cut it."
Software Developer
Carlos Matias La Borde
"I spend my days and nights on Educative. It is indispensable. It is such a unique and reader-friendly site"
Souvik Kundu
Front-end Developer
"Your courses are simply awesome, the depth they go into and the breadth of coverage is so good that I don't have to refer to 10 different websites looking for interview topics and content."
Vinay Krishnaiah
Software Developer
Hands-on Learning Powered by AI
See how Educative uses AI to make your learning more immersive than ever before.
AI Prompt
Code Feedback
Explain with AI
AI Code Mentor
Free Resources