NUnit学习笔记2
来源:互联网 发布:淘宝 异地送花 编辑:程序博客网 时间:2024/05/20 10:53
这篇学习笔记主要解释一下“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不必须),如下:
2
3 <TestFixture()> _
4 Public Class Class1Test
5 Public Sub New()
6
7 End Sub
8
9 End Class
4,然后就可以添加一个测试方法了,测试方法前面加上<test()>的Attribute
2 Public Sub FindMaxTest()
3 '定义一个数组
4 Dim list1 As Int32() = {1, 3, 10, 4}
5
6 Dim my As New Class1
7 '测试数组list1中的最大整数是不是10。
8 Assert.AreEqual(4, my.FindMax(list1))
9 End Sub
5,如此,一个单元测试就算是写好了,可以使用了(当然,测试用例还不够完善)。
接下去运行这个单元测试:先编译solution,生成一个exe或dll的程序集,打开nunit-gui.exe,点“file。。。”----〉“Open。。。”,然后,选中刚才生成的程序集,出现如下图:
6,然后按Run,就可以进行测试了,如下图:
出现一个大大的红色,NUnit里面,红色代码test失败,绿色代表成功,黄色代码忽略。
这里出现红色错误,是由于我故意在测试函数里面写错的:
Assert.AreEqual(4, my.FindMax(list1))
这里的最大值,应该是10,测试函数改成如下代码:
2 Public Sub FindMaxTest()
3 '定义一个数组
4 Dim list1 As Int32() = {1, 3, 10, 4}
5
6 Dim my As New Class1
7 '测试数组list1中的最大整数是不是10。
8 Assert.AreEqual(10, my.FindMax(list1))
9 End Sub
重新编译solution,NUnit不必重起,它会自动装载最新的程序集,再按NUnit的Run,如下图:
7,然后,让我们完善一下我们的测试函数:
2 Public Sub FindMaxTest()Sub FindMaxTest()
3 '定义一个数组
4 Dim list1() As Int32 = {1, 3, 10, 4}
5 Dim list2() As Int32 = {1, 3, 4, 10}
6 Dim list3() As Int32 = {10, 3, 1, 4}
7 Dim list4() As Int32 = {-2, -1, -3}
8
9 Dim my As New Class1
10 '测试数组list1中的最大整数是不是10。
11 Assert.AreEqual(10, my.FindMax(list1))
12
13 '测试边界值
14 Assert.AreEqual(10, my.FindMax(list2))
15 Assert.AreEqual(10, my.FindMax(list3))
16
17 '测试负数数组,数组中最大值应该是-1
18 Assert.AreEqual(-1, my.FindMax(list4))
19
20 End Sub
新增加了3个断言,用来测试边界值,负数。
8,Run,如下图:
哈哈,还是绿灯阿,我们的求最大数的方法就大致测试完成了。
下面列出一下常用的断言:
常用的NUnit断言有:
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);
- NUnit学习笔记2
- NUnit学习笔记2
- NUnit学习笔记
- NUnit学习笔记1
- NUnit学习笔记
- NUnit学习笔记1
- NUnit学习笔记1
- Nunit学习笔记1
- NUnit学习笔记 2007版
- NUnit 2.4.6学习笔记
- Nunit测试--------学习笔记第一节
- NUnit学习笔记之Mono篇
- NUnit学习笔记之进阶篇
- NUnit学习笔记之进阶篇
- NUnit学习笔记之进阶篇
- NUnit学习笔记 VS.net 2005篇
- NUnit学习笔记 Delphi 2006篇
- NUnit学习笔记 VS.net 2005篇
- Apache源代码分析——配置命令执行过程
- Apache源代码分析——命令表解析
- GCC精彩之旅
- DataGrid-数据格式设置表达式
- 许巍 时光
- NUnit学习笔记2
- IE最新发现的漏洞-MSIE (mshtml.dll) OBJECT tag vulnerability
- C#设计模式之抽象工厂(AbstractFactory)
- HPUnix环境下Weblogic7的安装与配置
- 北京累了,迁都吗?
- Sql Server 简史
- C#设计模式之组合(Composite)
- SQL Server 2000之日志传送功能 - 描述 (1)
- 守护进程的原理