Your SlideShare is downloading. ×
  • Like
  • Save
Unit testing and test driven development using vs
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Unit testing and test driven development using vs



  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Effective Test Driven Development & Unit Testing with Visual Studio 2010
    Abhimanyu Singhal
    Lead Consultant
    iMentor Knowledge Services
  • 2. About Me
    First Laid Hands on Computers in 1994 – Been a Geek for Quite Some time
    Worked on different platforms and technologies
    Career Focus – Embedded Systems and Native Development
    Help companies use Visual Studio Team System as an ALM Platform
    High-End Technical Consultancy and Training
  • 3. Objectives
  • 4. Why is TDD Good
    Thinking about tests pushes developer to understand better the gathered requirements
    Reduces the over engineered code (dead code)
    Unit Tests help to check that any new modification wont break the existing features.
    TDD increases software flexibility
    TDD code is more decoupled
  • 5.
  • 6. Demo – TDD for a Stack
  • 7. Visual Studio Team Test
    A Visual Studio integrated unit-testing framework
    Code generation of test method stubs.
    Running tests within the IDE.
    Incorporation of test data loaded from a database.
    Code coverage analysis once the tests have run.
  • 8. TestMethodAttribute Class
    Designates a Method as a Test Method
    Found in Microsoft.VisualStudio.QualityTools.UnitTesting.Framework Namespace
    TestMethod has to be an instance method with no paramters
    Method name is irrelevant because reflection searches for TestMethod Attribute
  • 9. TestClassAttribute Class
    Class containing the test method is designated TestClass Attribute
    • Found in Microsoft.VisualStudio.QualityTools.UnitTesting.Framework Namespace
    • 10. Team Test Uses Reflection to find Class with TestClass Attribute and Method with TestMethod Attribute and runs it
  • Running and Executing Tests
    From Visual Studio
    As Part of Build Process
    From Command Line
  • 11. ExpectedException Attribute
    Takes a Parameter which is Exception Type to watch for
    If Exception does not occur test fails
    The Second parameter (string) is optional is the error message displayed when exception is not thrown
  • 12. Loading Test Data From Database
    Use Test Properties Window
    Add TestData Attribute
    Source Type
    Connection String
  • 13. The TestContext
    Provides associated data through
    DataRow Property
    TestDirectory, TestName
    Mesuring Test Time using
  • 14. Code Coverage
    Determines how much code is tested
    Shows Percentage of Code Executed
    Highlights code to show which lines are executed
  • 15. Initializing and Cleaning Up Tests
    TestInitialize Attribute
    TestCleanup Attribute
    Code to be run before and after each test method
    Other Attributes for Lifetime Methods
  • 16. The Testing Framework
  • 17. Guidance – Unit Testing
    Keep Testing Code in Separate Assemblies
    Check for cleanup during test setup and execute the cleanup prior to the setup as necessary
    Avoid creating dependencies between tests, each test should be autonomous.
    Create one test class corresponding to each class within the production code.
    Avoid creating other machine dependent tests
    Create mock objects to test interfaces
  • 18. Question and Answers Session
  • 19. Thank You
  • 20. iMentor Knowledge Services