Autoplay
Autocomplete
Previous Lesson
Complete and Continue
From Zero to Hero: Unit testing for C# Developers
Course overview
Welcome (2:21)
What will you learn in this course? (3:55)
Who is this course for and prerequisites (1:49)
Introduction to unit testing
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)
Unit testing fundamentals
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)
Unit testing techniques
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)
Unit testing concepts
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)
Unit testing in the real world
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)
Advanced unit testing techniques
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
Course conclusion (0:37)
Who is this course for and prerequisites
Complete and Continue