测试目标:dll或是exe文件
环境 :VS2005+NUnit2.2.9
下边是简单学习过程(由简到繁)
第一步:在vs2005中新建一个class library工程,add 一个class,定义一个取数组最大值的函数,具体定义如下:
public class
Class1
{
public int FindMax(int[] arr)
{
int
i;
int max=arr[0];
for(i =1; i<arr.Length;
i++)
{
if(arr[i]>max)
{
max =arr[i];
}
}
return max;
}
}
第二步,就该编写test code了。add 一个新的class,命名为Class1Test。再编写code之前,需要给该工程添加一个NUnit的引用,具体为:右键点击reference->add reference->选择nunit.framework,然后在Class1Test文件中添加一个引用:using NUnit.Framework。当然,添加引用的前提是已经安装了NUnit了。下面我们就可以开始code test了。[在这里我觉得在实际的应用中(主要是测试Dll中),还是应该添加一个测试专用的新工程]
[TestFixture]
public class Class1Test
{
[Test]
public void FindMaxTest()
{
int[]
arr1 ={ 1, 3, 10, 4 };
int[] arr2 ={ 3, 10, 4, 1
};
int[] arr3 ={ 1, 10, 4, 3 };
int[] arr4 ={ -1,
-3, -5 };
Class1 myclass =new Class1();
Assert.AreEqual(10,
myclass.FindMax(arr1));
Assert.AreEqual(10,
myclass.FindMax(arr2));
Assert.AreEqual(10,
myclass.FindMax(arr3));
Assert.AreEqual(-1,
myclass.FindMax(arr4));
}
}
先来解析一下这个类吧:[TestFixture]是NUnit的一个重要的属性,可以说是NUnit的一个标记吧,它向编译工具“宣布”:我要测试啦。[Test]一般用在一个函数之前,而且这个函数必须是public类型,而且无返回值,即void。
好了,我们的类与测试类都已经写完了(也可以把测试函数与源代码写在一个文件中,但我相信没有几个人会喜欢那样的方式的)。编译好之后,可以得到一个dll文件。
打开NUnit,点击file->open,选择刚刚编译的dll文件,这样就把文件加载到NUnit了,在它的界面的左边,我们可以看到刚才编写的测试函数FindMaxTest,选择工程项目,或是文件,或是测试函数,然后点击界面右边的Run,如果一路绿灯,OK,我们的测试通过拉!