Test-Driven Development in Java

This course helps Java developers ensure code correctness, maintainability, and adaptability via integrating test-driven development in applications.

Intermediate

131 Lessons

32h

Certificate of Completion

This course helps Java developers ensure code correctness, maintainability, and adaptability via integrating test-driven development in applications.

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

This chapter introduces test-driven development in Java for high-quality, agile software delivery.
2.

Building the Case for TDD

This chapter explains the importance of test-driven development in enhancing code quality and team performance.
3.

Using TDD to Create Good Code

This chapter focuses on TDD principles to enhance code quality, prevent defects, and improve maintainability.
4.

Dispelling Common Myths about TDD

This chapter explores the advantages of test-driven development by debunking common myths.
5.

Building an Application Using TDD

This chapter explores test-driven development through iterative design and agile methodologies in Java.
6.

Writing Our First Test

12 Lessons

This chapter explores test-driven development principles to enhance code quality and design through effective unit testing.
7.

Following the Rhythms of TDD

9 Lessons

This chapter covers the rhythms of test-driven development to enhance code quality and functionality.
8.

Driving Design—TDD and SOLID

12 Lessons

This chapter explores TDD and SOLID principles to enhance Java software design and maintainability.
9.

Test Doubles—Stubs and Mocks

13 Lessons

This chapter explores test doubles, stubs, and mocks for effective unit testing in Java.
10.

Hexagonal Architecture—Decoupling External Systems

10 Lessons

This chapter covers hexagonal architecture to enhance testability, maintainability, and efficient software development.
11.

FIRST Tests and the Test Pyramid

8 Lessons

This chapter explores effective testing strategies and CI/CD practices for robust software development.
12.

Exploring TDD with Quality Assurance

7 Lessons

This chapter teaches you how to integrate TDD with manual testing to enhance software quality and user experience.
13.

Test First, Test Later, Test Never

7 Lessons

This chapter explores test-driven development principles, emphasizing early testing and hexagonal architecture for effective software design.
14.

Driving the Domain Layer

12 Lessons

This chapter covers test-driven development techniques to create a robust application domain layer.
15.

Driving the Database Layer

5 Lessons

This chapter covers database integration testing and adapter development using TDD principles in Java.
16.

Driving the Web Layer

9 Lessons

This chapter covers developing a functional web application using TDD, integrating HTTP endpoints and microservices.
17.

Wrap Up

1 Lesson

This chapter summarizes the essential TDD principles in Java for effective software development.
18.

Appendix

1 Lesson

This chapter explores how to set up a robust development environment for effective test-driven development.

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

FOR TEAMS

Interested in this course for your business or team?

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