[翻译]NUnit---Property and Random Attributes(十四)
小记:由于工作琐碎,没得心情翻译而且也在看《CLR vis C#》,所以断更了差不多5个月,现在继续翻译,保证会翻译完成,不会虎头蛇尾。
另:NUnit已经更新到2.6.3版本,虽然正在开发2.9.6(据说会大版本更新为NUnit3.0),但是2.6.2的很多东西不会变,只不过会支持.NET4.5的某些新东西,所以笔者会在翻译2.6.2之后会保证也会翻译更新的给大家。也许翻译的不是很好或者不准确,仅给大家提供参考。
有错误的地方,欢迎斧正。
废话不多说,上蒸菜:
PropertyAttribute (NUnit 2.4)
Property 特性使用键值对的形势,为任何测试用例或事例(fixture以后翻译为事例)提供了统一设置属性的方法。
在下面的示例中,事例类MathTests赋予Location属性值为723,测试用例AdditionTest 赋予Severity 属性值 "Critical"
Example:
namespace NUnit.Tests
{
using System;
using NUnit.Framework; [TestFixture, Property("Location",)]
public class MathTests
{
[Test, Property("Severity", "Critical")]
public void AdditionTest()
{ /* ... */ }
}
}
使用注意事项:
NUnit自身并不使用Property特性,但会在XML输出文件和GUI测试属性对话框中显示。
同时,可以使用扩展来访问指定属性的值。也可以在测试中使用反射来访问属性值。
Custom Property Attributes
用户可以继承PropertyAttribute来自定义特性,NUnit可以自动识别。Property特性提供了一个protected修饰的构造函数,这个构造函数会使用这个属性值。NUnit自身的一些属性实际上是Property特性的变异。
下面是示例会创建一个Severity属性。出了会有一个简单语法和类型安全之后,其余和一般属性一样。一个测试报告系统可能会利用这个属性来提供专业报告。
public enum SeverityLevel
{
Critical,
Major,
Normal,
Minor
} [AttributeUsage(AttributeTargets.Method, AllowMultiple=false)]
public class SeverityAttribute : PropertyAttribute
{
public SeverityAttribute( SeverityLevel level )
: base( level );
} ... [Test, Severity( SeverityLevel.Critical)]
public void MyTest()
{ /*...*/ }
从NUnit2.5开始,一个属性类特性可以包含多个键值对。这个功能没有对外公开,但是在派生属性类中可以使用,NUnit自身的某些特性使用了这个功能,如:RequiresThreadAttribute。
RandomAttribute (NUnit 2.5)
Random特性用于为一个参数化方法的一个参数提供一个随机组合值范围。NUnit会将每个参数的数据组合为一些了测试用例,所以如果为参数提供数据则必须为所以参数提供数据。
一般默认NNunit的组合方法会将参数提供的数据进行所以可能的组合值。但可以在具体的测试方法使用指定的特性进行修改。
Random特性支持以下几种构造:
public Random( int count );
public Random( double min, double max, int count );
public Random( int min, int max, int count );
Example
以下的测试会执行15次,参数x有三个值,参数d会选择从-1.0到1.0的5个值,形成15次组合值
[Test]
public void MyTest(
[Values(,,)] int x,
[Random(-1.0, 1.0, )] double d)
{
...
}
同理:
- ValuesAttribute
- RangeAttribute
- SequentialAttribute
- CombinatorialAttribute
- PairwiseAttribute
[翻译]NUnit---Property and Random Attributes(十四)的更多相关文章
- Gradle 1.12用户指南翻译——第三十四章. JaCoCo 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- Gradle 1.12 翻译——第十四章. 教程 - 杂七杂八
有关其它已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或訪问:http://gradledoc.qiniudn.com ...
- Gradle 1.12用户指南翻译——第二十四章. Groovy 插件
其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...
- Gradle 1.12用户指南翻译——第四十四章. 分发插件
本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- Gradle 1.12用户指南翻译——第六十四章. 发布到Ivy(新)
其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上的地址:https://gith ...
- python自动华 (十四)
Python自动化 [第十四篇]:HTML介绍 本节内容: Html 概述 HTML文档 常用标签 2. CSS 概述 CSS选择器 CSS常用属性 1.HTML 1.1概述 HTML是英文Hyper ...
- NeHe OpenGL教程 第四十四课:3D光晕
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第三十四课:地形
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第二十四课:扩展
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
随机推荐
- Dell 服务器安装方法介绍
大家都知道dell服务器在安装windows系统时都需要有raid卡驱动的加载才可以人道服务器硬盘,下面来介绍一下dell服务器raid卡驱动的加载和系统的安装: 方法一: 使用dell服务器自带的 ...
- django的数据库操作回顾
补充一个filter中大于小于的用法 models.course_info.objects.filter(id__gte=30).delete() _exact 精确等于 like 'aaa' __i ...
- 不同的路径12障碍物 · Unique Paths12
[抄题]: 有一个机器人的位于一个 m × n 个网格左上角. 机器人每一时刻只能向下或者向右移动一步.机器人试图达到网格的右下角. 问有多少条不同的路径? [思维问题]: 以为要用count来计数: ...
- SQL2000清除SQL日志
1.打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收 ...
- [leetcode]523. Continuous Subarray Sum连续子数组和(为K的倍数)
Given a list of non-negative numbers and a target integer k, write a function to check if the array ...
- chrome 调试工具的使用
Elements chrome devtools 中 Elements panel 是审查 dom 元素和 css 的, 可以实时修改 dom/css. windows: ctrl + shift + ...
- linux磁盘管理(RHEL)
IDE硬盘名称格式为/dev/hdXY,其中X为a-z的小写字母,Y为数字1-4(一块硬盘最多能分4个主分区).如hda1,表示第一块硬盘的第一个分区.hdb3表示第二块硬盘的第三个分区.还有如Pri ...
- Centos记录所有用户登录和操作的详细日志
1.起因 最近Linux服务器上一些文件呗篡改,想追查已经查不到记录了,所以得想个办法记录下所有用户的操作记录. 一般大家通常会采用history来记录,但是history有个缺陷就是默认是1000行 ...
- java如何实现以数据流的形式下载压缩包到本地?
先不多说,直接贴代码吧,在服务器的E盘下放一个E:/manual.rar的压缩包 package com.cellstrain.icell.controller; import org.springf ...
- 使用reactjs做一个CRUD功能
第一步:引入reactjs所依赖的js文件,本案例使用的是bootstrap前端框架,所以引入了相应的js和css文件 第二步:body里面添加两个div 第三步:开始编写reactjs脚本 < ...