-
Course
- Core Tech
Improving Testability Through Design
This course tackles the issues of designing a complex application so that it can be covered with high quality tests.
What you'll learn
A well designed application is not necessarily the one which has a perfect separation of layers, or the one which perfectly implements some predefined design patterns. It is certainly a plus to have these two goals met, but that is not sufficient to make the application really good. We can learn the most about one application by reading the source code of particular methods embedded deep inside of it. A common for loop often reveals more about the design than the whole diagram depicting responsibilities of an application layer in which it is located. The devil is in the details. The best of all intentions in design fails miserably when the low-profile design of small, seemingly unimportant classes is misconceived. In this course, the order of decisions is sorted bottom-up. It is the small class to which we pay attention the most. Only when all things are in place at the microscopic level can we discuss responsibilities of layers, isolation of modules and other high profile topics. The result is a well-built, easily testable and easily maintainable application.
Table of contents
- Preparing Tests for Properties | 1m 54s
- Testing Boundary Conditions | 2m 52s
- Improving the Boundary Conditions Tests | 2m 31s
- Defining the Circle | 2m 41s
- Adding an Operation to the Frame | 2m 2s
- Completing Tests for the Operation | 3m 2s
- Completing the Feature | 1m 50s
- Adding More Tests | 2m 23s
- Notes About how to Improve Unit Tests | 2m 13s
- Adding Another Feature and Its Tests | 3m 33s
- Adding a Concrete Implementation of the Circle | 1m 35s
- Trying the Demo Application | 1m 24s
- Exposing the Defects | 2m 3s
- A Case When It's Better Not to Mock | 2m 23s
- Exposing a Serious Defect | 3m 3s
- Summary | 2m 45s
About the author
Zoran Horvat is Principal consultant at Coding Helmet Consultancy, speaker and author of 100+ articles, and independent trainer on .NET technology stack.
More Courses by Zoran