注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

单元测试软件NUNIT使用说明  

2011-03-14 15:39:49|  分类: 软件测试 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

本文仅提供了public 方法的测试说明。及前期工作和常用的断言和测试attribute。

  NUNIT使用说明

  一:软件及安装

  免费,开源的单元测试软件。

  安装只要运行安装程序,按所有缺省设置即可。

  NUNIT:www.nunit.org

  NUNIT ADDIN :http://sourceforge.net/projects/nunitaddin/

  二:DLL的测试

  1:新建一个Class Library PROJECT,

  2:加入待测试DLL的引用,

  3:加入NUnit.Framework.dll的引用

  4:在文件开头加入:using NUnit.Framework

  5:在待测试的类前加入:[TestFixture]

  6:在待测试的方法前加入:[Test]

  7:启动NUNIT-GUI,新建项目,将新建的Class Library PROJECT加入,执行。

  三:Attribute简介

  1:TestFixture:每个待测试的类前必须加该Attribute。

  【注意】待测试类需要有一个public的default constructor(或者是没有定义任何的constructor)

  2:Test:每个测试的类中待测试的函数前必须加该Attribute。

  【注意】有Test attribute的method必须是public的,并且必须return void,也没有任何传入的参数。如果没有符合这些规定,在Test Runner GUI之中是不会列出这个method的,而且在执行Unit Test的时候也不会执行这个method。

  3:TestFixtureSetUp 和TestFixtureTearDown简介

  这两个主要用在TestFixture里面,其作用是提供一组函数执行任何测试运行之前(TestFixtureSetUP)和最后一个测试执行后(TestFixtureTearDown)。每一个TestFixture只能有一个TestFixtureSetUp方法和TestFixtureTearDown方法。如果一个以上的TestFixtureSetUp和TestFixtureTearDown方法,可以通过编译但是不会执行。注意一个TestFixture可以拥有一个TestFixtureSetUp和一个SetUp,也可以拥有一个TestFixtureTearDown和一个TearDown方法。

TestFixtureSetUp 和 TestFixtureTearDown 被用在不方便使用SetUp和TearDown方法。

  一般情况使用 SetUp 和TearDown attributes。

  4:SetUp 和 Teardown Attributes简介

  在写Unit Tests的时候,有时你会需要在执行每一个test method之前(或之后)先作一些预备或善后工作。当然,你可以写一个private的method,然后在每一个test method的一开头或最末端呼叫这个特别的method。或者,你可以使用我们要介绍的SetUp及Teardown Attributes来达到相同的目的。如同这两个Attributes的名字的意思,有Setup Attribute的method会在该TextFixture中的每一个test method被执行之前先被Test Runner所执行,而有Teardown Attribute的method则会在每一个test method被执行之后被Test Runner所执行。一般来说,Setup Attribute及Teardown Attribute被用来预备一些必须的objects(对象),例如database connection、等等。

  5:Attribute说明

  TestFixture:每个待测试的类前必须加该Attribute。

  Test:每个测试的类中待测试的函数前必须加该Attribute。

  TestFixtureSetUp:在一个测试类中只执行一次,且在所有测试案例运行前执行

  SetUp:在每个测试案例运行前执行

  ADD:测试案例1

  TearDown:在每个测试案例运行后执行

  SetUp:在每个测试案例运行前执行

  Sub:测试案例2

  TearDown:在每个测试案例运行后执行

  TestFixtureTearDown:在一个测试类中只执行一次,且在所有测试案例运行后执行

  ExpectedException:检测抛出异常

  [Test]

  [ExpectedException(typeof(InvalidOperationException))]

  [Test,ExpectedException(typeof(InvalidOperationException))]

  Ignore :临时忽略一些测试

  Ignore(“Not ready to test this yet”);

四:NUNIT的各种断言

  断言用于帮助你确定某个被测试函数是否工作正常,通常一个测试方法中会有多个断言,当一个断言失败时,该测试方法就会终止。可使用Assert或Assertion调用断言函数。

  1:AreEquals(expected,actual[,string message])

  Expected是被测试代码的期望值,actual是被测试代码的实际值,message是一个可选的消息,在二个值不一致时报告错误。Expected和actual可以是一个对象。

  对于浮点数的比较,使用AreEquals(expected,actual,tolerance[,string message]),其中,tolerance表示精度,0.01表示仅比较小数后二位。

  2:IsNull/IsNotNull(object[,string message])

  判断一个对象是空/非空。

  3:AreSame(expected,actual[,string message])

  判断Expected和actual是否是同一个对象。

  4:IsTrue(bool condition[,string message])/IsFalse

  判断条件是否为真/假。

  5:Fail([string message])

  使测试立即失效。

  五:异常处理

  NUNIT框架可以捕获任何异常,并且把它报告为一个错误,这些都不需要用户的参与

  六:测试用例编写

  NUNIT使用断言业判断待测试代码是否返回正确的结果,在编写测试用例的过程中,经常需要有一个正确的值作为依据,与测试代码返回的值进行比较。在有些情况下,可以比较容易地取到这些正确的值,但有时要取得这些正确的值并不容易。如在从数据库取数据时,难以设定一个正确的值,在这种情况下,最好使用一些已被测试是正确的或商用的模块程序,将这些测试过的程序或商用模块返回的值作为正确的值,作为一个比较参照。

  评论这张
 
阅读(560)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017