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

网易杭研自动组

快乐耕耘,收获成长!

 
 
 

日志

 
 

基于White+NUnit的客户端测试框架——NUnit篇  

2011-02-25 14:08:22|  分类: 技术调研 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
作者:都都

1    简介

Web测试中,我们使用了TestNG框架来组织测试,同样的,客户端测试我们也需要相应的测试框架。NUnit是一个单元测试框架,专门针对.Net来写的,与JUnitJava),CPPUnitc++)一样,他们都是xUnit的一员。

NUnit主页:http://www.nunit.org/

2       安装与运行

Nunit的安装很简单,可以在NUnit官网上下载一个最新版本进行安装,或者下载源码自己编译安装。

运行:NUnit提供了3种运行方式

  1.   NUnit GUI:独立的NUnit图形化工具,可用于本机独立测试时使用
基于White+NUnit的客户端测试框架——NUnit篇 - 网易杭研自动组 - 网易杭研自动组
  
   2.  NUnit
命令行:客户端框架中的运行方式,可以支持多种参数,其中的testname等用于实现用例过滤
基于White+NUnit的客户端测试框架——NUnit篇 - 网易杭研自动组 - 网易杭研自动组

  3.   Vistual Studio插件:这个需要用到第三方插件,将Nunit集成到Vistual Studio中,如http://www.mutantdesign.co.uk/nunit-addin/

 

3       生命周期

NUnit的用例生命周期与TestNG也非常类似,我们直接从一个实例开始看。

[TestFixture]         //标记这是一种包含测试方法的类,可以包含多个[Test]
public class DatabaseFixture

{
   [TestFixtureSetUp]  //在整个[TestFixture]之前执行
   public void OpenConnection()

  {
     //open the connection to the database

   }
 
[TestFixtureTearDown]    //在整个[TestFixture]完成之后执行
 public void CloseConnection()

 {
      //close the connection to the database
  }
[SetUp]                 //在每个[Test]之前执行
public void CreateDatabaseObjects()

{
     //insert the records into the database table

}
[TearDown]             //在每个[Test]完成之后执行
public void DeleteDatabaseObjects()
{
//remove the inserted records from the database table

}
[Test]                   //单个测试用例
public void ReadOneObject()
{
//load one record using the open database connection
}
[Test]
public void ReadManyObjects()

{
    //load many records using the open database connection

}
}
 

4       特性

NUnit特性较多,具体的可以在官网上查看。这里只介绍2个在我们的框架中将会用到的特性。

1.  Assert:断言,可以说Assert是每个单元测试框架的核心。如果一个Assert失败,方法的调用不会有返回值,并且会报告一个错误。我们可以用Assert来判断用例的成功/失败,并加入相应的提示信息。NUnit提供了Equality, Identiry, Comparison, Type, Condition, Utility几种最常用的Assert方法。

2.  数据驱动:TestCaseSource。这个与[Test]等标签一样,也是NUnit属性的一部分。比如我们有一个测试用例,其定义如下:

[Test, TestCaseSource( “opers”)]

public void SendMsg(string oper){…}

对于sendMsg这个Test,我们想要测试两个路径,接受消息/拒绝消息,那么我们就可以定义一个方法opers,在[Test]标签上增加[TestCaseSource]属性

public static object[] opers =

        {

            new object[] {"accept"},

            new object[] {"refuse"}

};

NUnit执行的时候,我们将会看到如下图所示,SendMsg用例将被执行2次。

基于White+NUnit的客户端测试框架——NUnit篇 - 网易杭研自动组 - 网易杭研自动组
  评论这张
 
阅读(932)| 评论(0)
推荐 转载

历史上的今天

评论

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

页脚

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