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.

Intermediate

131 Lessons

32h

Certificate of Completion

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.

AI-POWERED

Explanations

AI-POWERED

Explanations

This course includes

96 Playgrounds
59 Quizzes

This course includes

96 Playgrounds
59 Quizzes

Course Overview

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...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

What You'll Learn

An understanding of the need for automated testing and test-driven development (TDD)

Show more

Course Content

1.

Getting Started

Get familiar with essential TDD techniques and principles for robust Java development.
2.

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

Examine how TDD fosters high-quality code, prevents logic flaws, and documents effectively.
4.

Dispelling Common Myths about TDD

Grasp the fundamentals of dispelling myths to appreciate TDD's benefits and efficacy.
5.

Building an Application Using TDD

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 Lesson

Explore the significance of TDD, SOLID principles, and test automation in real-world Java projects.
18.

Appendix

1 Lesson

Find out about setting up a Java development environment with IntelliJ, JDK, JUnit, and Gradle.

Course Author

Trusted by 1.4 million developers working at companies

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Evan Dunbar

ML Engineer

Carlos Matias La Borde

Software Developer

Souvik Kundu

Front-end Developer

Vinay Krishnaiah

Software Developer

Eric Downs

Musician/Entrepeneur

Kenan Eyvazov

DevOps Engineer

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Hands-on Learning Powered by AI

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

Instant 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.

AI-Powered Mock Interviews

Adaptive Learning

Explain with AI

AI Code Mentor