Building a Pragmatic Unit Test Suite

This course serves as a descriptive, in-depth guideline for pragmatic unit testing.
Course info
Rating
(117)
Level
Intermediate
Updated
Oct 7, 2016
Duration
3h 42m
Table of contents
Course Overview
Introduction
Understanding Styles of Unit Testing
Getting the Most out of Your Unit Tests
Refactoring to More Valuable Unit Tests
Getting the Most out of Your Integration Tests
Avoiding Unit Testing Anti-patterns
Description
Course info
Rating
(117)
Level
Intermediate
Updated
Oct 7, 2016
Duration
3h 42m
Description

Unit testing is everywhere. It is one of the most widely spread engineering practices in the world of software development. It’s important to know how to apply it in a way that helps, and not prevents you from building successful products. This course, Building a Pragmatic Unit Test Suite, is going to show you how to do that. First, you'll learn about what makes a test valuable. Next, you'll learn about the different styles of unit testing, as well as the use of mocks. Finally, you'll wrap up the course by learning about integration testing and unit testing anti-patterns. By the end of this course, you’ll know how to make the most out of your unit and integration tests.

About the author
About the author

Vladimir Khorikov is a Microsoft MVP and has been professionally involved in software development for more than 10 years.

More from the author
CQRS in Practice
Intermediate
4h 22m
11 Oct 2018
More courses by Vladimir Khorikov
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi everyone, my name is Vladimir Khorikov and welcome to my course Building a Pragmatic Unit Test Suite. I'm a programmer at EastBanc Technologies. Unit testing is everywhere. It is one of the most widest spread engineering practices in the world of software development. It's important to know how to apply it in a way that helps and not prevents you from building successful products. This course is going to show you how to do that. Some of the major topics that we will cover include what makes a test valuable, different styles of unit testing, the use of mocks, integration testing, and unit testing anti-patterns. By the end of this course you'll know how to make the most out of your unit and integration tests. Before beginning this course you should be familiar with the C# programming language and the basics of unit testing. I hope you'll join me on this journey to learn unit testing with the Building a Pragmatic Unit Test Suite course here at Pluralsight.

Introduction
Unit testing is a vast topic. The industry has accumulated a huge amount of information about it during the past two decades. However, not all unit testing practices yield equal results. Some of them are valuable and contribute a lot to the overall software quality. Others result in brittle tests: tests that raise many false alarms and dilute your ability to spot regression errors. It is important for you as a developer to differentiate them and know which practices provide the best return of investments. My name is Vladimir Khorikov and this is the Building a Pragmatic Unit Test Suite course in which I'll show you how to make the most out of your unit tests. You will learn how to differentiate a valuable unit test, how to spot a harmful test, and how to apply that knowledge in practice resulting in a robust test suite which helps you quickly evolve your software product.

Understanding Styles of Unit Testing
Hi, my name is Vladimir Khorikov, and in this module we will be discussing different styles of unit testing. You will learn what these different styles are about and how they relate to each other in terms of their value proposition.

Getting the Most out of Your Unit Tests
Hi, my name is Vladimir Khorikov, and in this module we will talk about how to get the most out of your unit tests.

Refactoring to More Valuable Unit Tests
Hi, my name is Vladimir Khorikov, and in this module you will see the actual refactoring process of the code base we discussed previously. This module is going to be a demonstration of the refactoring process. We will first discuss a refactoring plan and see how the sample project can be modified, then we will gradually implement the refactoring starting from the domain classes and then move on to the application services layer that would use them. After that, we will compare the old and the new code bases.

Getting the Most out of Your Integration Tests
Hi, my name is Vladimir Khorikov, and in this module we will talk about integration testing. You will see in what circumstances the use of collaboration verification is justified, how to choose which external dependencies to include into integration testing scope and how to properly verify the communication pattern between applications.

Avoiding Unit Testing Anti-patterns
Hi, my name is Vladimir Khorikov. In this module we will talk about some common unit testing anti-patterns. We will discuss the topic of exposing implementation details, leaking domain knowledge, code pollution, violation of the single responsibility principle, and non-determinism in tests.