.Net单元测试(一)——神器Nunit



Nunit的介绍

NUnit是一个专门针对于.NET的单元测试框架,适用于所有.Net语言的单元测试;它是完全用C#进行设计开发的,充分体现了.Net语言的特点,例如自定义属性和反射等。祖籍,Xunit,远房表亲:Junit(Java的单元测试框架)CPPUnit(C++单元测试框架)

Nunit的下载安装

下载地址:http://www.nunit.org/index.php?p=download

.Net单元测试(一)——神器Nunit_第1张图片

Windows用户直接下载winNUnit-2.6.4.msi,一直下一步即安装完成。  

Nunit的使用

Nunit的使用笔者以一个VS demo为例说明。

1、首先在VS中引用Nunit.framework

.Net单元测试(一)——神器Nunit_第2张图片

2、使用VS编写被测demo

     新建项目Bank——>添加Account类编写Account类的存钱Deposit、取钱Withdraw、转账TransferFunds三个方法

.Net单元测试(一)——神器Nunit_第3张图片

3、VS中新建一个Bank测试类,编写测试用例,分别对三个方法进行测试

  (以【TransferFunds】为例)针对【TransferFunds】方法编写测试代码如下:

.Net单元测试(一)——神器Nunit_第4张图片


4、使用Nunit进行测试:

1、双击打开Nunit——>加载文件,点击file——>Open Project——>找到被测类的dll,加载 (详见下图)

.Net单元测试(一)——神器Nunit_第5张图片

加载成功的Bank,【AccountTest】类下写了两个测试方法,如图:

.Net单元测试(一)——神器Nunit_第6张图片

分别对【TransferFunds】、【TransferWithInsufficientFunds】进行测试。(笔者上面展示的代码仅有TransferFunds方法,故本文默认以该方法为例进行描述)

2、选中需要测试的方法,点击【Run】进行测试:

绿色——>测试通过:

.Net单元测试(一)——神器Nunit_第7张图片

红色——>测试未通过,并显示测试未通过原因和错误代码行数。

.Net单元测试(一)——神器Nunit_第8张图片

被测试的【TransferFunds】方法,预计输出【250】,但实际为【150】,AreEquel方法两个参数值不等。这就是未通过的原因。

3、找到出错处代码(【TransferFunds】方法错误),修改: 

.Net单元测试(一)——神器Nunit_第9张图片

4、返回Nunit界面,点击【Run】,测试通过:

.Net单元测试(一)——神器Nunit_第10张图片

NunitTestFixture】和【 Test】属性

NUnit的很多功能都是通过属性来提供的。属性是.NET语言中一个很重要的特性,这也是Nunit使用C#编写沿承.Net语言的一大传统。从代码上看,属性就是一个加在元素前面的中括号标识。如代码中的【TestFixture】和【Test】。

在测试类中,我们用TestFixture属性来标记一个类包含测试,申明该类是用来测试的。一般用在class的定义之前;Test一般是放在方法之前,表示对该方法的测试。

NunitAssert】类:

        Nunit中对单元测试做出极大贡献的就是Assert断言。这个类具有诸多方法,用来验证程序实际输出结果与预期结果的对比。例如代码中的AreEqual方法的的用途就是判断预期结果和实际输出是否相等。也就是说该转账方法【TransferFunds】,预期输出应为【250】,实际输出是通过【Balance】属性确定的。如果【Balance】等于250,则该测试通过。

 

你可能感兴趣的:(.Net单元测试(一)——神器Nunit)