NUnit学习笔记2

这篇学习笔记主要解释一下“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不必须),如下:
 

1 Imports  NUnit.Framework
2 

3 <TestFixture()>  _
4 Public Class
 Class1Test
5     Public Sub New
()
6 

7     End Sub
8 
9 End Class


4,然后就可以添加一个测试方法了,测试方法前面加上<test()>的Attribute

1     <Test()>  _
2     Public Sub
 FindMaxTest()
3         '定义一个数组

4         Dim list1 As Int32() = {13104 }
5 

6         Dim my As New  Class1
7         '测试数组list1中的最大整数是不是10。

8         Assert.AreEqual(4 , my.FindMax(list1))
9     End Sub
其中,Assert.AreEqual()就是NUnit提供的一个断言,用来判断前后2个值是否相等。如果相等,则测试通过,否则测试失败。

5,如此,一个单元测试就算是写好了,可以使用了(当然,测试用例还不够完善)。
接下去运行这个单元测试:先编译solution,生成一个exe或dll的程序集,打开nunit-gui.exe,点“file。。。”----〉“Open。。。”,然后,选中刚才生成的程序集,出现如下图:


6,然后按Run,就可以进行测试了,如下图:


出现一个大大的红色,NUnit里面,红色代码test失败,绿色代表成功,黄色代码忽略。
这里出现红色错误,是由于我故意在测试函数里面写错的:
        Assert.AreEqual(4, my.FindMax(list1))

这里的最大值,应该是10,测试函数改成如下代码:

1     <Test()>  _
2     Public Sub
 FindMaxTest()
3         '定义一个数组

4         Dim list1 As Int32() = {13104 }
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,然后,让我们完善一下我们的测试函数:

 1    <Test()>  _
 2    Public 
Sub FindMaxTest()
 3        '定义一个数组

 4        Dim list1() As Int32 = {13104}
 5        Dim list2() As Int32 = {13410
}
 6        Dim list3() As Int32 = {10314
}
 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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值