Until the 30th of April, use code BIRTHDAY40 for 40% off any course, BIRTHDAY20 for 20% off any bundle and BIRTHDAY15 for 15% off your first year of Dometrain Pro

From Zero to Hero: Test-Driven Development in C#

Master the craft of Test-Driven Development from the basics to the most advanced concepts

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.

Curriculum

Welcome

1:37

What will you learn in this course?

3:43

Who is this course for and prerequisites

1:58

What is TDD?

2:43

Benefits and drawbacks of TDD

7:12

"Test-First" vs "Test-After"

2:21

How to define a Unit in Unit Testing

3:23

Red-Green-Refactor cycle

3:12

The 3 Rules of TDD

2:42

Incrementalism

2:33

Section recap

0:24

The example we will work on

2:16

Creating a Testing List

5:56

Writing the first Tests

29:58

Using Tests as Documentation

7:21

Section recap

0:49

The example we will work on

1:15

Writing application level tests

6:56

What is a Test Double?

2:53

Building Dummies

2:40

Building Stubs

4:00

Building Spies

2:59

Building Mocks

9:49

Building Fakes

3:42

Fixtures, Setup, and Teardown

6:05

How to TDD on Integration Testing

3:39

Test-driving a Storage Adapter

25:08

Test-driving a REST API

19:48

Section recap

0:36

The example we will work on

0:29

Detroit vs London school

1:05

What is the Detroit School style?

1:42

What is the London School style?

2:11

Practicing TDD in a London School style

27:36

Section Recap

0:31

Naming Tests

2:35

How to organize tests

1:54

Applying Act-Arrange-Assert

2:29

Using 1 Assertion per test

2:35

Start from the end

3:10

Improving test readability

4:20

How to solve bugs with TDD

3:36

What are TDD Driving Patterns

0:47

Driving Patterns: Fake It

5:53

Driving Patterns: Triangulation

7:05

Driving Patterns: Obvious Implementation

3:00

The Four Rules to Simple Design

2:22

Anti-patterns and how to avoid them

6:45

Section recap

0:44

TDD in Agile software development and DevOps

7:40

How BDD and ATDD relate to TDD

5:09

How TDD relates to the Testing Pyramid

5:00

TDD and Source Control

6:00

Pair Programming when doing TDD

3:05

Defining Team testing policies

4:32

The value of Code Coverage when doing TDD

1:46

Using Mutation Testing to improve TDD skills

4:51

Handling Objections and Challenges to TDD Adoption

3:27

Section recap

0:48

The example we will work on

2:15

What is Legacy Code

1:36

How to use Approval Testing

10:44

Refactoring to Support Testing

26:53

Test-driving new Behaviour

6:34

Section recap

0:28

Conclusion

1:01

Course Info

Level:
From Zero to Hero
Duration:
5h 40m

Lifetime access

Buy Course
Dometrain Pro

Want access to all of our courses? Subscribe to Dometrain Pro!

More info

About the Author

author_img

Gui Ferreira

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