纵观软件的开发,测试已经日益成为软件开发过程中的重要环节,通常一个软件的开发周期中测试要占到一半时间甚至更多。而在测试过程中,单元测试更是万里长征第一步,单元测试进行得是否完善,直接影响到后期集成测试的效率。进行单元测试,有许多软件可以自动完成,NUnit就是其中之一。这是一款与JUnit齐名的,同属于xUnit家族的单元测试软件(在http://www.NUnit.org我们可以免费得到这款软件)。

[正文]            

    让我们从一个简单的例子开始。假设我们正在编写一个航班管理应用程序,假设有这么一个方法——TransLinkFlightNo()。具体看注释:

待测试方法:(ComFunction.cs)

[C#]在C#中使用NUnit进行单元测试using System;
[C#]在C#中使用NUnit进行单元测试
using System.Collections;
[C#]在C#中使用NUnit进行单元测试
using System.Text;
[C#]在C#中使用NUnit进行单元测试
using System.Data;
[C#]在C#中使用NUnit进行单元测试

 

        }


 

测试类:(Test.cs)

[C#]在C#中使用NUnit进行单元测试using System;
[C#]在C#中使用NUnit进行单元测试
using System.IO;
[C#]在C#中使用NUnit进行单元测试
using System.Configuration;
[C#]在C#中使用NUnit进行单元测试
[C#]在C#中使用NUnit进行单元测试
using NUnit.Framework;

 

    }

测试用例:(ComFunctionsTesting.txt)
(#:注释语句;测试用例以","分隔,左边为结果期望值,右边为测试输入值)
(当然,也可以将该文档写成XML文档,可以输入列多的测试信息)

[C#]在C#中使用NUnit进行单元测试----------------------------------------------------------------
[C#]在C#中使用NUnit进行单元测试# 文件名称:ComFunctionsTesting.txt
[C#]在C#中使用NUnit进行单元测试# 功能描述:ComFunctions类 TranSchLine 方法的测试用例
[C#]在C#中使用NUnit进行单元测试#            
-- # 为注释行
[C#]在C#中使用NUnit进行单元测试#            
--文档不能有空行        --LeeWenjie 2006-03-23
[C#]在C#中使用NUnit进行单元测试# Create :LeeWenjie 
2005-08-16
[C#]在C#中使用NUnit进行单元测试
---------------------------------------------------------------
[C#]在C#中使用NUnit进行单元测试#
[C#]在C#中使用NUnit进行单元测试# 返回值,输入值
[C#]在C#中使用NUnit进行单元测试#
[C#]在C#中使用NUnit进行单元测试MF1001
/11,MF1001/MF1011
[C#]在C#中使用NUnit进行单元测试MF831
/2,MF831/MF832
[C#]在C#中使用NUnit进行单元测试MF8115
/8225/26/8116,MF8115/MF8225/MF8226/MF8116
[C#]在C#中使用NUnit进行单元测试MF1087
/88,MF1087/Mf1088
[C#]在C#中使用NUnit进行单元测试Mf1087,Mf1087
[C#]在C#中使用NUnit进行单元测试MF8577
/88,MF8577/MF8577/MF8588/MF8588
[C#]在C#中使用NUnit进行单元测试MF8577
/66/88,MF8577/MF8577/MF8566/MF8588/MF8588
[C#]在C#中使用NUnit进行单元测试MF8577
/66/88,MF8577/MF8577/MF8566/MF8588/MF8588/
[C#]在C#中使用NUnit进行单元测试# 新七位航班号    
--LeeWenjie
[C#]在C#中使用NUnit进行单元测试MF8304A
/B,MF8304A/MF8304B
[C#]在C#中使用NUnit进行单元测试MF8304A
/5B,MF8304A/MF8305B
[C#]在C#中使用NUnit进行单元测试MF8304A
/B/C,MF8304A/MF8304B/MF8304C
[C#]在C#中使用NUnit进行单元测试MF8304A
/5B/6C,MF8304A/MF8305B/MF8306C
[C#]在C#中使用NUnit进行单元测试MF8304A
/5A/6A,MF8304A/MF8305A/MF8306A
[C#]在C#中使用NUnit进行单元测试MF831
/01A,MF831/MF8301A
[C#]在C#中使用NUnit进行单元测试# END


    首先要注意的是这个类关联了一个[TestFixture]特性(attribute)——这表示这个类包含了测试代码(这个特性可以被继承)。这个类必须是公有的,但他的父类并不受限制。这个类还必须有一个默认构造函数。

    编译并运行这个例子。假设你已经将你的测试代码编译为ComFuntion.dll。打开NUint Gui(安装程序会在你的桌面和“程序”菜单中建立一个快捷方式),打开GUI后,选择File->Open菜单项,找到你的ComFuntion.dll并在“Open”对话框中选中它。ComFuntion.dll装载后你会在左边的面板中看到一个测试树结构,还有右边的一组状态面板。

单击Run按钮,状态条和测试树种的TransLinkFlightNo节点变成了红色——我们的测试失败了。

“Errors and Failures”面板显示错误消息,

在它正下方的堆栈跟踪面板报告了测试失败的语句在代码中的位置.

如果测试结果和期望的一样时,节点变绿.
--------------------------------------------------------------------------------------------------

--LeeWenjie 2006-09-11

01Soft.cn@Gmail.com

相关文章:

  • 2021-12-06
  • 2021-06-11
  • 2021-09-04
猜你喜欢
  • 2021-06-29
  • 2021-10-17
  • 2022-12-23
  • 2021-06-25
相关资源
相似解决方案