Test SetUp and TearDown in Unit Testing using NUnit : Part 2

Read Part 1 here: How to do Unit Test using NUnit : Part 1

In last post we talked about how to start with Unit Testing using NUnit. In this post I will discuss about following two topics,

  1. Test Setup
  2. Test Teardown

You need Test Setup and Test Teardown to remove any dependency between tests. Assume a scenario that

  • You want to create instance of a particular object before execution of any test
  • You want to delete a particular file from file system before execution of any test
  • You want to insert some test data or create some test data before execution of any test etc..

In above stated scenario you may want to create a Test Setup. Test Setup is a piece of code get executed before execution of any test.

clip_image002

Other use case could be that you want to perform a particular task after execution of each test. So once test got executed a certain task should get done and we call that Test Teardown. There could be scenario that

  • You want to destruct an instance after execution of any test
  • You want to remove test data after execution of any test
  • You want to delete a file from file system after execution of any test etc.

In above scenario you may want to create Test Teardown. Test Teardown is piece of code get executed after execution of any test.

clip_image002[6]

In NUnit you can create Test Setup and Test Teardown by using [Setup] and [TearDown] attribute on a function.

So Test Setup can be created as following,

image

And you can create Test Teardown as following

image

If there are 5 tests in your test class then these two functions will get executed 5 times. Now let us put our discussion into concrete example. Assume that you are writing Unit Test for a Product class. Product class is defined as following,

namespace MyAppToTest
{
 public class Product
 {
 double productPrice;

 public double ProductPrice
 {
 get
 {
 return productPrice;
 }

set
 {
 productPrice = value;
 }
 }
 }
}

A Unit Test is written to test valid product price as following,

[Test]
 public void IsValidProductPrice()
 {

 p.ProductPrice = 100;
 if (p.ProductPrice > 0)
 {
 result = true;
 }

Assert.IsTrue(result, "Product Price is valid");
 }

You can write Test SetUp and TearDown as following,


Product p;
 bool result;
 [SetUp]
 public void TestSetup()
 {
 p = new Product();
 result = false;

 }

[TearDown]
 public void TestTearDown()
 {
 p = null;
 result = false;
 }

The above two function will get executed each time before execution of test and after execution of test. In writing Unit Test , Test SetUp and Test TearDown are very handy and useful. I hope you find this post useful. Thanks for reading.

About these ads

3 thoughts on “Test SetUp and TearDown in Unit Testing using NUnit : Part 2

  1. Pingback: Dew Drop – June 17, 2013 (#1,569) | Alvin Ashcraft's Morning Dew

  2. Pingback: Ignore Test in Unit Testing using NUnit: Part 3 « debug mode......

  3. Pingback: TestFixtureSetUp and TestFixtureTearDown in Unit Testing using NUnit: Part 4 « debug mode......

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s