Labels

Friday, June 19, 2009

Unit Testing || Automated in VS2008

Introduction

 

Unit testing has evolved from a fringe activity to an industry-accepted way to develop software. This change in attitude was aided by the introduction of numerous freely available testing frameworks — most notably, NUnit.

 

Testing options in Visual Studio 2008 Professional Edition

 

Visual Studio 2005 Team System included Microsoft’s testing engine (MSTest), but many developers still clamor for the testing tools to be available to a wider audience.

Their efforts paid off, and MSTest is now available in Visual Studio 2008 Professional Edition.

 

The new Test drop-down menu within the IDE provides easy access to the testing framework. It allows you to author, generate, and run tests.

Other changes have been introduced as well. For instance, a new Run Tests context-menu option has been added to the MSTest engine to simplify the execution of tests.

 

Test-driven development options

 

A basic tenet of eXtreme programming is test-driven development (TDD). The goal is to create tests before developing any code. This goes against traditional programming; instead of writing functional code and then testing code as an afterthought (if testing is performed at all), you start with the test code.

You make sure the test is correct according to the necessary logic. With the test complete, it is available when the code is ready, and you quickly know if the code performs as desired. Basically, you develop code that will pass the test.

 

A key part of TDD is the Automated Unit Test that properly tests code functionality. Testing Frameworks provide a vehicle for creating and running these tests. Various Testing Frameworks exist for .NET developers, including the following:

 

  • NUnit: An open source unit-testing framework for the .NET platform. It is the leader in this category, as it mimics the JUnit Java offering for the .NET platform; that is, it brings test-driven development to .NET. NUnit provides both a GUI and command-line interface. It also promotes unit testing your .NET code after coding is complete or using the test-driven approach to development. (Learn more about this framework by reading my article, “NUnit allows effective unit testing with .NET applications.”)

 

  • xUnit.net: A freely available testing framework available via Microsoft’s version of open source with the CodePlex site. It was designed with a goal of closely aligning itself with the .NET Framework. (One of the developers of xUnit.net originally worked on NUnit.) xUnit.net was built using .NET Framework 2.0; it does not require any installation, and it offers better integration with source control tools. xUnit.net focuses heavily on test-driven development as opposed to just testing, so there are some differences with NUnit. xUnit.net is the latest to join the pool of testing frameworks.

 

  • MbUnit: MbUnit or the Generative Unit Test Framework for the .NET Framework is offered free of charge. It was built using the .NET Framework, and it promotes test-driven development. It offers both command-line and GUI interfaces along the lines of the same features available in NUnit.

 

  • QuickUnit.net: A simple testing framework written in C# for .NET applications. It is a minimalist approach to testing for developers who ignore writing unit tests and test-driven development. It can be used as a first step to become familiar with testing.

 

  • csUnit: A freely available testing framework that promotes test-driven development. It offers a graphical interface and easy integration with Visual Studio 2005.

 

Visual Studio add-ons

 

There are a few Visual Studio add-ons that make it easier to use the various testing frameworks within the IDE. One of the more popular products is TestDriven.NET; however, unlike the testing frameworks, it is not free. TestDriven.NET allows you to use the features of the testing framework from within Visual Studio via one click of the mouse. It works with all versions of Visual Studio.

 

Hope this helps.

 

Thanks & Regards,

Arun Manglick || Senior Tech Lead

 

 

No comments:

Post a Comment