这篇学习笔记主要解释一下“NUnit学习笔记1”中举的例子,说明一下NUnit的主要用法。
上个例子中,主要结构如下:
其中Class1内包含了求最大值的方法,也是我要测试的类。
Class1Test就是用来测试Class1中方法的测试类。
流程:
1,要使用NUnit,先必须添加nunit.framework引用:
在Solution Explorer中的References上按右键,添加引用,然后按browse,在NUnit目录下找到nunit.framework.dll,添加
2,在测试类Class1Test的头上添加Imports NUnit.Framework;c#是using NUnit.Framework;
3,标示测试类,在测试类上添加<TestFixture()>这个Attribute ,然后添加一个无参的构造函数(c#为必须,vb.net不必须),如下:
4,然后就可以添加一个测试方法了,测试方法前面加上<test()>的Attribute
5,如此,一个单元测试就算是写好了,可以使用了(当然,测试用例还不够完善)。
接下去运行这个单元测试:先编译solution,生成一个exe或dll的程序集,打开nunit-gui.exe,点“file。。。”----〉“Open。。。”,然后,选中刚才生成的程序集,出现如下图:
6,然后按Run,就可以进行测试了,如下图:
出现一个大大的红色,NUnit里面,红色代码test失败,绿色代表成功,黄色代码忽略。
这里出现红色错误,是由于我故意在测试函数里面写错的:
Assert.AreEqual(4, my.FindMax(list1))
这里的最大值,应该是10,测试函数改成如下代码:
重新编译solution,NUnit不必重起,它会自动装载最新的程序集,再按NUnit的Run,如下图:
7,然后,让我们完善一下我们的测试函数:
method
|
usage
|
example
|
Assert.AreEqual(object expected, object actual[, string message])
|
验证两个对象是否相等
|
Assert.AreEqual(2, 1+1)
|
Assert.AreSame(object expected, object actual[, string message])
|
验证两个引用是否指向同意对象
|
object expected = new object();
object actual = expected;
Assert.AreSame(expected, actual)
|
Assert.IsFalse(bool)
|
验证bool值是否为false
|
Assert.IsFalse(false)
|
Assert.IsTrue(bool)
|
验证bool值是否为true
|
Assert.IsTrue(true)
|
Assert.IsNotNull(object)
|
验证对象是否不为null
|
Assert.IsNotNull(new object())
|
Assert.IsNull(object)
|
验证对象是否为null
|
Assert.IsNull(null);
|