Our Black Friday discount is now LIVE! Use code BLACKFRIDAY24 to get 40% off any Course, Bundle or your first year of Dometrain Pro!

From Zero to Hero: Unit testing in C#

Mastering the bedrock of testing

There is a reason why Unit Testing is the bottom layer in the testing pyramid. You can only build a solid testing suite on a robust foundation. Nothing is more reassuring when working on a codebase than knowing that if you accidentally break something, a test will alert you, saving you hundreds to thousands or even hundreds of thousands of dollars in potential customer impact. In this course, Nick will teach you how to write modern unit tests for your code bases so you are always confident in change. Oh, and if you don't know what the testing pyramid is, don't worry. You will after you take this course.

Curriculum

Welcome (2:21)

What will you learn in this course? (3:55)

Who is this course for and prerequisites (1:49)

Different types of testing (7:15)

What is unit testing and why it's important? (1:30)

The testing pyramid (1:57)

Why should you write unit tests? (3:12)

The 3 core unit testing concepts (1:57)

Why xUnit? (0:57)

Writing your first unit test (6:23)

Structuring your solution (2:50)

Naming in unit tests (3:32)

Arrange, Act, Assert (2:09)

xUnit's test execution model (2:54)

Test Setup and Teardown (5:46)

Parameterizing tests (3:18)

Ignoring tests (1:23)

Your turn to practice (Project source under the video) (1:04)

My answer to the exercise (0:40)

Section recap (0:48)

Writing fluent assertions (3:19)

Testing strings (2:58)

Testing numbers (2:00)

Testing dates (1:37)

Testing objects (3:32)

Testing enumerables (3:32)

Testing methods that throw Exceptions (2:23)

Testing for raised events (1:29)

Testing private methods (members) (1:24)

Testing internal methods (members) (3:01)

Section recap (0:26)

The problem with dependencies (3:54)

Dependency injection to the rescue (2:55)

What are fakes? (3:03)

What is mocking? (6:11)

Moq vs NSubstitute (2:35)

Section recap (0:53)

The project we will be adding unit tests to (3:38)

The scope of our testing (3:59)

Testing the application layer (22:35)

Exercise: Testing the rest of the application layer (Project source under the video) (1:24)

Exercise answer: Testing the rest of the application layer (15:21)

But was all that necessary? (2:10)

Testing the data layer (1:13)

Testing the API layer (9:51)

Exercise: Testing the rest of the API layer (Project source under the video) (1:03)

Exercise answer: Testing the rest of the API layer (13:19)

Section recap (0:42)

Observing the default test execution behavior (2:41)

The Class Fixture (4:12)

The Collection Fixture (5:04)

Running test in parallel (5:43)

Advanced parameterization (4:53)

Setting test execution timeouts (1:17)

Testing Date and Time (5:19)

Continuous testing (1:55)

What is code coverage? (2:57)

Measuring code coverage (6:35)

Section recap (0:48)

Course conclusion (0:37)

Course Info

Level:
From Zero to Hero
Duration:
3h 38m
Rating (4,8K+):
star

Lifetime access

Add to Cart

Part of the bundle

From Zero to Hero: Testing Essentials Bundle in .NET Bundle thumbnail Get it for 20% off
Dometrain Pro

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

Try it for free!

About the Author

author_img

Nick Chapsas

Nick Chapsas is a .NET & C# content creator, educator and a Microsoft MVP for Developer Technologies with years of experience in Software Engineering and Engineering Management.

He has worked for some of the biggest companies in the world, building systems that served millions of users and tens of thousands of requests per second.

Nick creates free content on YouTube and is the host of the Keep Coding Podcast.

More courses by Nick Chapsas