DN27 - .NET Test Driven Development - 3 Days

View Dates and Locations

Course Description

All developers want to build good quality software but not all developers test their software as they go along. Why not? A common explanation is "I don't have time to write tests!". The more pressure they feel, the fewer tests they write. This leads to less accurate and stable code, less productivity, less confidence and, ultimately, more pressure. It's a vicious cycle.

This course is designed to help you break out of the cycle by embracing unit-testing and, in particular, test-driven development. We will introduce the techniques and the tools necessary to prove your code as you go along. The course can be run using C# or VB.


At least 6 months experience in C# or VB.


What you will learn:

  • Understanding TDD principles
  • Writing effective unit tests
  • Refactoring code
  • Implementing Inversion of Control (IoC)
  • Using mocking frameworks


For on-site courses (i.e. at your premises), we are more than happy to tailor the course agenda to suit your exact requirements. In many cases, we are able to build your in-house standards and naming conventions into the delivered course.

On-site course enquiry (from £165 pp per day)

Course Details

View Dates and Locations

Overview of Test-Driven Development
Test, code, refactor, repeat
The benefits of TDD
The process of TDD
Tools available

Unit testing basics
Getting started with unit testing using Test Explorer in Visual Studio
Structure of a unit test
Using assertions
Dealing with exceptions
Using MS Test Extensions
Additional techniques

Additional testing techniques
Using NUnit
NUnit constraint syntax
NUnit data-driven design
Code coverage

The need for refactoring
Types of refactoring
Guidelines and recommendations
Creating layered designs
Using dependency injection

Inversion of control
Overview of IoC
Using factories
Using IoC containers
Using a configuration file

Test doubles and mocking
Principles and techniques
Getting started with RhinoMocks
Working with mock objects
Additional techniques and considerations

Testing legacy code
Where to start? Adding new behaviour
Finding change points
Breaking dependencies



Please be aware that due to COVID-19 we are not currently running public courses. However, most of our courses can be delivered over the web (with mainframe access where necessary).

Dates are being arranged daily - please phone or email for further information.

Course Enquiry