1、准备TestDriven和NUnit
单元测试对于程序员来说基本是一个必备的技能。“千里之堤,溃于蚁穴”这句话对于程序员也适用。记得一位大牛说过“笨蛋都能写出让机器看懂的程序,真正的聪明人写出让人看得懂的程序”。单元测试能显著提高自己程序的质量,当项目变得很大的时候,良好的单元测试也能提高项目的质量,当然,它也能让人充满成感。好吧,让我们开始单元测试之旅。
下载TestDriven:http://www.testdriven.net/default.aspx
下载NUnit:http://www.nunit.org/index.php?p=download
NUnit名气非常大,而且功能也很强,尽管NUnit支持GUI和Console两种工作方式,但是它使用起来确实不够直观,我们不得不不停地切换窗口以看到测试结果。而TestDriven非常方便,它和Visual Studio .Net2003和2005都集成的非常好,做到了即指即测。能较大的提高我们测试的效率。在安装好TestDriven后,可以看到下面的一个小小的图标。
我们可以针对整个测试文件和单个函数进行测试,非常方便。下面主要谈谈TestDriven支持的属性和参数。
2、TestDriven支持的一些重要的属性
TestDriven其实可以支持大部分NUnit支持的属性,但是有些属性是无法支持的。其实对于自己进行单元测试来说,只需要知道常用的10多个属性可以进行很好的测试了。下面常用和重要的属性做一些解释。
在开始测试之前,记得引用nunit.framework这个dll,然后
using NUnit.Framework;
2.1 [TestFixture] 属性
这个属性通常是用来修饰测试类,表明这个类是用于测试的。一般把它放在类声明的上面,像下面这样
[TestFixture]
//这个类是一个用来执行单元测试的类
public class TestSimpleCalculator
{
// something
}
2.2 [TestFixtureSetUp] 属性
这个属性通常用来修饰一个方法,表明这个方法先于所有测试方法之前运行,类似于构造函数。那么我们可以用来初始化一些对象等,非常有用。
[TestFixture]
public class UnitTestDemo
{
SimpleCalculator myMath;
//在所有测试方法运行之前运行
[TestFixtureSetUp]
public void InitFixture()
{
myMath = new SimpleCalculator();
}
}