Test Driven Development for .NET Applications

CloudLabs

Projects

Assignment

24x7 Support

Lifetime Access

.

Course Overview

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.

At the end of the training, participants will be able to:

  1. Sustainable approach to Test-Driven Development
  2. The practice of Test-Driven Development, which utilizes Refactoring and Unit Testing in a particularly fine-grained way

Pre-requisite

  1. NET programming

Duration

2 days

Course Outline

  1. Traditional versus agile development processesIterative and incremental development
  2. Informal and continuous design
  3. The role of refactoring
  4. Refactoring versus other code changes
  5. Extreme Programming
  6. Test-Driven Development
  1. Traditional view and reality of testing
  2. Driving development through testing
  3. Testing early, often and automatically
  4. Testing versus debugging
  5. White-box versus black-box testing
  6. Functional versus operational testing
  1. Test plans versus test code
  2. Use of Debug.Assert
  3. Testing at the interface
  4. Testing the simplest things first
  5. Testing incrementally
  6. Testing correctness of failure
  1. NUnit and the xUnit family
  2. Test fixtures and test methods
  3. The role of attributes in NUnit’s design
  4. Assertion methods
  5. Testing correctness of exceptions –
  6. Defining common fixture code
  1. Red, green, refactor
  2. None to one to many
  3. Faking it
  4. Telling the truth
  5. Isolated and short tests
  6. Refactor common fixture code
  7. Declare, prepare, assert
  8. Test by method, state or scenario
  9. Custom assertions
  1. Renaming variables, methods, classes and packages
  2. Restructuring class hierarchies by extracting interfaces, superclasses and subclassesPartitioning classes by extracting classes and methods
  3. Changing private representation
  1. Unmanaged dependencies
  2. Test-driven decoupling
  3. Layering
  4. Reorganising packages
  5. Eliminating cyclic dependencies
  6. Mock objects
  7. Eliminating Singletons, statics and other globalsTest I/O

Reviews