This course teaches you various advanced techniques for making unit tests more robust and easier to maintain. It assumes that you have prior experience with unit testing. You'll learn how to make the Arrange and Assert parts of your tests easier to read and maintain, as well as how to model unit tests to match the System Under Test, and how to make the System Under Test easier to unit test. Throughout the course you will see lots of code examples in C#.
Mark Seemann is the author of Dependency Injection in .NET and the inventor of AutoFixture. He is a professional programmer and software architect living in Copenhagen, Denmark, and currently an independent advisor. He enjoys reading, drawing, playing the guitar, good wine, and gourmet food.
Test Utility Code Hello. My name is Mark Seemann, and this is the Advanced Unit Testing Course, Module 2, Test Utility Code. In this module, you'll learn about four creational unit testing patterns: Test Data Builder, SUT Factory, Auto-Mocking Container, and Fixture Object.
Structural Inspection Hello. My name is Mark Seemann, and this is the Advanced Unit Testing Course, Module 3, Structural Inspection. In this module, you're going to learn about a technique for unit testing complex systems. This is, by its very nature, not a simple undertaking, but perhaps more related to your day-to-day work. After all, most software we write is far from simple. As such, I think it makes sense to devote an entire module to address this issue. Unit testing isn't done in a vacuum. The API of the system under test must lend itself to testing, so API design is a factor when testing complex systems. After you've learned a simple API design trick, I'll teach you how to unit test individual parts of a larger whole, and finally how to verify that all of those parts interact correctly.
Identity Hello. My name is Mark Seemann, and this is the Advanced Unit Testing Course, Module 4, Identity. In this module you are going to learn about types of identity. As it turns out, in a unit testing context, the identity of a so-called value object is by far the most interesting, so most of the module we'll focus on how to unit test that value objects are equal to each other, but I'll also briefly touch on the identity of entities and services.
Test-Specific Identity Hello. My name is Mark Seemann, and this is the Advanced Unit Testing Course, Module 5, Test-Specific Identity. In this module, we are going to pick up where we left in module 4. The overall theme is how to avoid equality pollution, and you're going to learn about four ways to do that using custom comparers, using a resemblance, using likeness, and finally, using likeness as a resemblance.