EXCEPtional training for .NET developers

TDD with .NET Training Course

Gain TDD Skills For .NET Applications Development - Improve Agility & Predictability Of Your Development Lifecycle

28 Oct London
request info

Capita Marks and Spencer Telefonica Cisco BBC Lloyds Sony

TDD with .NET training course (code: TDDNET)


Our Test-Driven Development training course using C# or VB.NET presents a number of modern practices for developing code based on an iterative and incremental development lifecycle. The course is intended as a practical course: the best way to appreciate how test-driven development works and what it feels like is to do it in practice, making sense of the principles it embodies. In this form the course is based on lecture material, demonstration, discussion and hands-on labs. However, the course can also be run as a seminar without hands-on labs, which puts more emphasis on understanding the principles through the demonstrations.


.NETdevelopers looking to acquire TDD techniques



Agile Development Microprocess

Traditional versus agile development processes · Iterative and incremental development
Informal and continuous design
The role of refactoring
Refactoring versus other code changes
Extreme Programming
Test-Driven Development

Testing in Principle

Traditional view and reality of testing
Driving development through testing
Testing early, often and automatically
Testing versus debugging
White-box versus black-box testing
Functional versus operational testing

Basic Unit Testing in Practice

Test plans versus test code
Use of Assert
Testing at the interface
Testing the simplest things first
Testing incrementally
Testing correctness of failure

Overview of NUnit

NUnit and the xUnit family · 
Test fixtures and test methods · 
The role of attributes in NUnit's design · 
Assertion methods · 
Testing correctness of exceptions · 
Defining common fixture code

Test-Writing Techniques

Red, green, refactor
None to one to many
Faking it
Telling the truth
Isolated and short tests
Refactor common fixture code
Declare, prepare, assert
Test by method, state or scenario
Custom assertions

Common Refactorings

Renaming variables, methods, classes and packages
Restructuring class hierarchies by extracting interfaces, superclasses and subclasses
Partitioning classes by extracting classes and methods ·
Testing private implementation
Use of PrivateObject

Decoupling Techniques

Unmanaged dependencies
Test-driven decoupling
Reorganising packages
Eliminating cyclic dependencies
Mock objects
Use of Mock Framework (Moq or Rhino Mocks)
Eliminating Singletons, statics and other globals

Microsoft Fakes (and Shims)

Working with Frameworks and 3rd Party Libraries
Fakes and Shims
Faking Concrete Types
Use of ShimContext
Setting up Custom implementation

  • Agility and predictability are two qualities often missing from software development.
  • A test-driven approach, in which design is grown and code delivered incrementally according to functionality or risk, forms the basis of the construction phase of an iterative and incremental development.
  • The use of unit testing provides confidence in existing code and supports the ability to refactor code as development unfolds.
  • Labs can use either NUnit (NUnit Test Adapter) or MS Test frameworks

Receive the latest version of this course into your inbox


28th Oct 2019 - 3 days £1795

see all dates


Show Discount for this course


  Bring a JBI course to your office
  and train a whole team onsite
  0800 028 6400
or request quote

  You can customise this course to
  suit your exact needs here
  0800 028 6400 or request quote

0800 028 6400

Why JBI ?

►"great technology tips"
► "Access to exclusive content"
► "Short course means less time off"

►"Inspiring trainers"
► "Joined via web"
► "Knowledgable sales staff"

Get exclusive news about upcoming programs, technical insights & special offers