TestCaseAttribute (NUnit 2.5)

  TestCase特性有两个效果,包括标记一个方法使用参数并且在调用的时候提供内置数据。示例如下,本示例会使用不同数据集执行3次:

  

[TestCase(12,3,4)]
[TestCase(12,2,6)]
[TestCase(12,4,3)]
public void DivideTest(int n, int d, int q)
{
Assert.AreEqual( q, n / d );
}

  Note:.net特性的限制了参数类型,NUnit会在提供给测试用力前尝试将提供的值用Convert.ChangeType()进行转换。

  在一个测试方法上可以多次运用TestCase特性,TestCase特性还可以使用FactoriesAttribute等特性来提供数据。

  通过使用Result参数,测试用例可以有更简单

[TestCase(12,3, Result=4)]
[TestCase(12,2, Result=6)]
[TestCase(12,4, Result=3)]
public int DivideTest(int n, int d)
{
return( n / d );
}

  在上面的示例中,NUnit会检查方法返回值是否与提供的Result参数值相等。

  TestCaseAttribute还提供一些列其他属性:

    Description:描述测试用例详情

    ExpectedException:指定期望抛出的异常

    ExpectedExceptionName:指定期望抛出异常的全名

    ExpectedMessage:指定期望抛出异常的信息

    Explict:设置为true标记测试用例为显示执行,用Reason来诠释缘由

    Ignore:设置为true用于指定忽略测试用例,用Reason来诠释缘由

    IgnoreReason:指定忽略测试用例及缘由,等同于同时使用Ignore && Reason。注意:本特性会在以后版本中移除

    MatchType:MessageMatch枚举类型,指定测试期望信息(详情见ExpectedExceptionAttribute

    Reason:指定不执行测试用例的缘由,结合Ignore或Explicit特性使用

    Result:指定测试方法期望的返回值,返回值类型必须是可兼容的

    TestName:为测试用例指定一个名称,如果不指定会根据测试方法及参数自动生成。

执行顺序:

  在NUnit2.5,会根据字母少顺序排序及执行。从NUnit2.5.1开始,测试用例不会排序,会根据发行的顺序进行执行。这个发现的顺序不是根据特性字典的顺序来排列并且会根据不同的编译器及CLR的版本不同而不同。

  结果就是在一个测试方法中,TestCase特性出现多次或者其他提供数据的特性与TestCase特性一起使用,测试用例的顺序是不明确的。

[翻译]NUnit---TestCase Attributes(二十一)的更多相关文章

  1. 转:二十一、详细解析Java中抽象类和接口的区别

    转:二十一.详细解析Java中抽象类和接口的区别 http://blog.csdn.net/liujun13579/article/details/7737670 在Java语言中, abstract ...

  2. 云计算设计模式(二十一)——Sharding分片模式

    云计算设计模式(二十一)——Sharding分片模式 将一个数据存储到一组水平分区或碎片.存储和访问大量数据时,这个模式可以提高可扩展性. 背景和问题 由一个单一的服务器托管的数据存储区可能会受到以下 ...

  3. 二十一世纪计算 | John Hopcroft:AI革命

    编者按:信息革命的浪潮浩浩汤汤,越来越多的人将注意力转向人工智能,想探索它对人类生产生活所产生的可能影响.人工智能的下一步发展将主要来自深度学习,在这个领域中,更多令人兴奋的话题在等待我们探讨:神经网 ...

  4. 无废话ExtJs 入门教程二十一[继承:Extend]

    无废话ExtJs 入门教程二十一[继承:Extend] extjs技术交流,欢迎加群(201926085) 在开发中,我们在使用视图组件时,经常要设置宽度,高度,标题等属性.而这些属性可以通过“继承” ...

  5. Bootstrap <基础二十一>徽章(Badges)

    Bootstrap 徽章(Badges).徽章与标签相似,主要的区别在于徽章的边角更加圆滑. 徽章(Badges)主要用于突出显示新的或未读的项.如需使用徽章,只需要把 <span class= ...

  6. 【圣诞特献】Web 前端开发精华文章推荐【系列二十一】

    <Web 前端开发精华文章推荐>2013年第九期(总第二十一期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HTML5 和  ...

  7. Citrix 服务器虚拟化之二十一 桌面虚拟化之部署Provisioning Services

    Citrix 服务器虚拟化之二十一  桌面虚拟化之部署Provisioning Services Provisioning Services 是Citrix 出品的一系列虚拟化产品中最核心的一个组件, ...

  8. 二十一、contextMap中放的常用数据

    二十一.contextMap中放的常用数据 request:请求范围的数据.即ServletRequest中的那个Map parameters:请求参数的数据.即request.getParamete ...

  9. 牢记!SQL Server数据库开发的二十一条注意点

    如果你正在负责一个基于SQL Server的项目,或者你刚刚接触SQL  Server,你都有可能要面临一些数据库性能的问题,这篇文章会为你提供一些有用的指导(其中大多数也可以用于其它的DBMS). ...

随机推荐

  1. VB 共享软件防破解设计技术初探(一)

    VB 共享软件防破解设计技术初探(一) ×××××××××××××××××××××××××××××××××××××××××××××× 其他文章快速链接: VB 共享软件防破解设计技术初探(二)http ...

  2. 利用Python和webhook实现自动提交代码

    最近在为公司书写项目的api文档,计划利用码云的wiki管理整个项目,公司自有git作为项目内容依托,这样全员都可参与,而我定期向码云推送就可以了. 问题 根据需求遇见了这样一个问题:我每次从git上 ...

  3. Partition List双色问题链表版

    [抄题]: Given a linked list and a value x, partition it such that all nodes less than x come before no ...

  4. ROS两种workspace :overlay rosbuild_ws->catkin_ws->ROS库,

    概念 ROS里面有一系列概念,作为初学者,最先接触的概念无非是node, package和workspace. node node是ROS里面最小的执行单位,你可以把node看成是一个main函数,当 ...

  5. golang实现任务分发处理

    package main import ( "flag" "fmt" "os" "log" "net/http ...

  6. Linux gprof命令

    一.简介 gprof是GNU工具之一,它在编译的时候在每个函数的出入口加入了profiling的代码,运行时统计程序在用户态的执行信息,可以得到每个函数的调用次数,执行时间,调用关系等信息,简单易懂. ...

  7. NOIP 2016 游记

  8. DataStage 八、清除日志

    DataStage序列文章 DataStage 一.安装 DataStage 二.InfoSphere Information Server进程的启动和停止 DataStage 三.配置ODBC Da ...

  9. 【commons-httpclient】Java中HttpClient工具访问Web请求

    注意jar包是: HttpClient工具使用 HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程 ...

  10. win7 精简板 安装ardunio uno r3驱动

    http://www.arduino.cn/thread-2350-1-1.html 下载那个64位的 http://www.keyes-robot.cn/forum.php?mod=viewthre ...