Mastering C# Unit Testing with Real-world Examples
What you'll learn
- Use builder methods to simplify your tests
- Write tests for multiple test values to make your tests more maintainable
- Choose good names to express the intent of your tests
- Use simple test values to make your tests easier to follow
- Write domain-specific assertion methods to have more readable tests
Requirements
- Basic knowledge of writing unit tests with a testing framework like MSTest
- Understading of mocks and mocking libraries like Moq
- Familiarity with the Arrange/Act/Assert pattern
Description
You've learned the basics of unit testing in C#, but you still struggle with writing tests that are easy to read and maintain.
You've seen too many online tutorials testing a Calculator class, but you want to learn how to test real code. Code with dependencies, validations, and edge cases. Code that looks like the code you find every day at work.
That's why I created this course.
No more unit testing the Add method of a Calculator class.
In this course, let's refactor some real unit tests to make them more readable and maintainable. Although I changed names, classes, and methods to avoid disclosing code from past clients and employers, these are the tests I had to work with as a software engineer.
You will learn how to transform messy and convoluted tests into readable and maintainable tests using best practices and proven principles and methods.
Who is this course for?
This course is for you if you are:
A C# developer who wants to level up your unit testing skills and write readable and maintainable tests
A C# developer who is tired of boring and unrealistic tutorials and wants to learn from real code examples
After you follow this course, you will be able to:
Use builder methods to simplify your tests
Write tests for multiple test values to make your tests more maintainable
Choose good names and use simple test values to make your tests easier to follow
Write domain-specific assertion methods to have more readable tests
Mastering these skills will help you to write tests easy to follow. The next time you open one of your tests, you won't need to scratch your head trying to figure out what you were doing.
But here's the thing:
This is not an introductory course on unit testing.
You will take more out of this course if you know how to write unit tests with a testing framework like MSTest, a mocking library like Moq, and the Arrange/Act/Assert pattern.
We're not covering how to write your first unit tests. We're covering unit testing best practices to make your tests readable and maintainable while we refactor real unit tests.
If you know what mocks are in unit testing, you're in the right place.
What is inside?
In this course, you will get access to:
Eight principles or lessons that cover different best practices for unit testing
More than ten unit tests that show real code examples that need refactoring
Four exercises that challenge you to apply what you learned and refactor a unit test on your own
A checklist that summarizes the best practices from the course
Source code of all the unit tests before refactoring them so you can follow along each lesson
Who this course is for:
- C# developers looking to improve their unit testing skills and write readable and maintainable tests
- C# developers tired of boring and impractical tutorials that prefer to learn through real-world code examples
Instructor
TL;DR: Software engineer, lifelong learner, language enthusiast, and avid reader.
Hello, there! I’m a software engineer working remotely based in Colombia (not Columbia) with more than 10 years of experience. I work as a C# backend engineer and content writer. I specialize in building APIs and backend code with .NET technologies — Mostly, ASP.NET Core and SQL Server these days.
I help teams grow high-quality backend software. And by high-quality, I mean maintainable and performant.
I write content, courses, and training for .NET teams. I like to work by combining my writing, teaching, and programming skills.
In my free time, I like to read books (on paper) and learn and teach foreign languages. (Currently, I'm learning Brazilian Portuguese: Oi, gente! Tudo bem?)