HomeCoursesTest-Driven Development in Java
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.
Join 2.7M developers at
Overview
Content
Reviews
Related
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.

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
Every Educative lesson is designed by a team of ex-MAANG software engineers and PhD computer science educators, and developed in consultation with developers and data scientists working at Meta, Google, and more. Our mission is to get you hands-on with the necessary skills to stay ahead in a constantly changing industry. No video, no fluff. Just interactive, project-based learning with personalized feedback that adapts to your goals and experience.

Trusted by 2.7 million developers working at companies

Hands-on Learning Powered by AI

See how Educative uses AI to make your learning more immersive than ever before.

AI Prompt

Build prompt engineering skills. Practice implementing AI-informed solutions.

Code Feedback

Evaluate and debug your code with the click of a button. Get real-time feedback on test cases, including time and space complexity of your solutions.

Explain with AI

Select any text within any Educative course, and get an instant explanation — without ever leaving your browser.

AI Code Mentor

AI Code Mentor helps you quickly identify errors in your code, learn from your mistakes, and nudge you in the right direction — just like a 1:1 tutor!

Free Resources

FOR TEAMS

Interested in this course for your business or team?

Unlock this course (and 1,000+ more) for your entire org with DevPath