Test-Driven Development (or TDD for short) is one of the most essential software development practices. It is a practice based on the simple idea that instead of writing our code first and then later writing tests for it, we write our tests first, and then we write code that makes those tests pass. This approach has many advantages, from productivity gains to ensuring that our work doesn't get out of scope to ultimately writing better, focused code with cleaner interfaces and looser coupling. TDD can change the way we think about building software. In this course, Gui Ferreira will teach you everything you need to know to practice TDD, from the most basic concepts to some very advanced ones and make it part of your software development lifecycle.
Welcome
What will you learn in this course?
Who is this course for and prerequisites
What is TDD?
Benefits and drawbacks of TDD
"Test-First" vs "Test-After"
How to define a Unit in Unit Testing
Red-Green-Refactor cycle
The 3 Rules of TDD
Incrementalism
Section recap
The example we will work on
Creating a Testing List
Writing the first Tests
Using Tests as Documentation
Section recap
The example we will work on
Writing application level tests
What is a Test Double?
Building Dummies
Building Stubs
Building Spies
Building Mocks
Building Fakes
Fixtures, Setup, and Teardown
How to TDD on Integration Testing
Test-driving a Storage Adapter
Test-driving a REST API
Section recap
The example we will work on
Detroit vs London school
What is the Detroit School style?
What is the London School style?
Practicing TDD in a London School style
Section Recap
Naming Tests
How to organize tests
Applying Act-Arrange-Assert
Using 1 Assertion per test
Start from the end
Improving test readability
How to solve bugs with TDD
What are TDD Driving Patterns
Driving Patterns: Fake It
Driving Patterns: Triangulation
Driving Patterns: Obvious Implementation
The Four Rules to Simple Design
Anti-patterns and how to avoid them
Section recap
TDD in Agile software development and DevOps
How BDD and ATDD relate to TDD
How TDD relates to the Testing Pyramid
TDD and Source Control
Pair Programming when doing TDD
Defining Team testing policies
The value of Code Coverage when doing TDD
Using Mutation Testing to improve TDD skills
Handling Objections and Challenges to TDD Adoption
Section recap
The example we will work on
What is Legacy Code
How to use Approval Testing
Refactoring to Support Testing
Test-driving new Behaviour
Section recap
Conclusion
Course Info
Lifetime access
Add to Cart
Guilherme Ferreira, also known as Gui, is a Minimalist Software Craftsman, passionate about simplicity and continuous learning. Gui is a Microsoft MVP for Developer Technologies, a Tech Speaker, a YouTuber, and a .NET content creator. With over 15 years of experience in software development, Gui went from Startups to Tech Giants. Along his journey, he got to know several hats, including Software Engineer, Architect, CTO, and Developer Advocate, gathering a diverse and invaluable skill set.
More courses by Gui Ferreira© 2023 Dometrain. All rights reserved.