Home About Courses Schedule Services Webinars Contact Search

Advanced Test-Driven Development Using Visual Studio and C#


Duration: 1 Day

Method: Instructor led, Hands-on workshops

Price: $600.00

Course Code: NE1021


An emerging software engineering paradigm is test-driven development, where tests are written early and testing is performed continuously during the development process. Problems are discovered early and corrected when they are found. This one-day course for developers introduces advanced tools and methodologies of test-driven development that come with Visual Studio 2012 Ultimate, and illustrates the use of the techniques in the real-life projects.

The course is practical, with many example programs and tests written in C#, including a cumulative case study. The goal is to demonstrate unit testing in real world .NET development projects including tiered service-oriented applications. The student will receive a comprehensive set of materials, including course notes and all the programming examples.


Upon successful completion of this course, the student will be able to:

  • Understand Code Coverage tools and metrics
  • Acquire fluency in code isolation techniques
  • Efficiently use Microsoft Fakes framework for code isolation


The student should have a good knowledge of the .NET Framework and experience programming in C# with Visual Studio. A basic course in Unit Testing, such as the NE1020, Test-Driven Development Using Visual Studio and C#, is recommended.


  • I. Code Coverage
    • Coverage
    • Block Coverage
    • Branch Coverage
    • Line Coverage
    • Collecting Coverage Data
    • Selecting Coverage Units
    • Coverage Visualization
    • Coverage Analysis
  • II. Isolation Techniques
    • Design for Test
    • Private Accessors
    • Test Instance
    • Configuration Files
    • Test Instance - Database
    • Test Instance - Service
    • Stubs
  • III. Microsoft Fakes
    • Adding Fakes
    • Stub Classes
    • Stub Methods
    • Stub Properties
    • Shims
    • Shims Context
    • Class Shims
    • Methods Shims
    • Default Behavior
    • Global Shims
    • Static Methods