NUnit属性-百度Nunit-Gui

NUnit属性

编辑

TestFixture 属性

本属性标记一个类包含测试。做为一个测试的类,这个类还有一些限制:

1、必须是Public,否则NUnit看不到它的存在。

2、它必须有一个缺省的构造函数,否则是NUnit不会构造它。

3、构造函数应该没有任何副作用,因为NUnit在运行时经常会构造这个类多次。

Test 属性

Test属性用来标记一个类(已经标记为TestFixture)的某个方法是可以测试的。

1、测试方法必须为Public。

2、测试方法必须没有参数。

3、测试方法不返回任何参数。

SetUp/TearDown 属性

用于在测试开始时初始化,和测试后清除。标记为SetUp/TearDown 属性方法必须为public。

ExpectedException属性

这里是一个验证这个假设的测试。在这个属性里,你可以在执行过程中捕获你期望的异常类型。如果这个方法在没有抛出期望异常的情况下完成了,这个测试失败。使用这个属性帮助我们写程序员测试验证边界条件(Boundary Conditions)。

Ignore 属性

由于种种原因,有一些测试我们不想运行。当然,这些原因可能包括你认为这个测试还没有完成,这个测试正在重构之中,这个测试的需求不是太明确。但你有不想破坏测试,不然进度条可是红色的哟。怎么办?使用Ignore属性。你可以保持测试,但又不运行它们。

TestFixtureSetUp / Down属性

有时,一组测试需要的资源太昂贵。例如,数据库连接可能是一个关键资源,在一个test fixture的每个测试中,打开/关闭数据库连接可能非常慢。这就是我在开始提到的问题。

如何解决?NUnit有一对类似于前面讨论的SetUp/TearDown的属性: TestFixtureSetUp/TestFixtureTearDown。正如他们名字表明的一样,这些属性用来标记为整个test fixture初始化/释放资源方法一次的方法。

例如,如果你想为所有test fixture的测试共享相同的数据库连接对象,我们可以写一个打开数据库连接的方法,标记为TestFixtureSetUp属性,编写另外一个关闭数据库连接的方法,标记为TestFixtureTearDown属性。

Explicit属性

本属性忽略一个test和test fixture,直到它们显式的选择执行。如果test和test fixture在执行的过程中被发现,就忽略他们。所以,这样一来进度条显示为黄色,因为有test或test fixture忽略了。

Category属性

对于测试来说,你有的时候需要将之分类,此属性正好就是用来解决这个问题的。

测试生命周期

FixtureSetUp

SetUp

Test Method1

TearDown

SetUp

Test Method2

TearDown

FixtureTearDown

Assert Class

提供了一系列的 static methods,让你可以用来验证主要程序的结果与预期的是否一样。

常用的 Assert 断言有:

1、Assert.AreEqual(object expected,object actual[string message]):验证两个对象是否相等,如Assert.AreEqual(2,1+1);

2、Assert.AreSame(object expected,object actual[string message]):验证两个引用是否指向同一对象,如

object expected=new object();

object actual =expected;

Assert.AreSame(expected,actual);

3、Assert.IsFalse(bool):验证bool值是否为false,如Assert.IsFalse(false);

4、Assert.IsTrue(bool):验证bool值是否为true,如Assert.IsTrue(true);

5、Assert.IsNotNull(object):验证对象是否不为null,如Assert.IsNotNull(new object());

6、Assert.IsNull(object):验证对象是否为null,如Assert.IsNull(null);

NUnit使用方法

NUnit的官方网站下载地址为:www.nunit.org,如果是结合.net使用,最好下载win.net版。

在vs2005中新建一个class library工程,add 一个class,定义一个取数组最大值的函数,具体定义如下:

public class Class1

{

public int FindMax(int[] arr)

{

int i;

int max=arr[0];

for(i =1; i<arr.Length; i++)

{

if(arr>max)

{

max =arr;

}

}

return max;

}

}

第二步:就该编写test code了。add 一个新的class,命名为Class1Test。再编写code之前,需要给该工程添加一个NUnit的引用,具体为:右键点击 reference->add reference->选择nunit.framework,然后在Class1Test文件中添加一个引用:using NUnit.Framework。当然,添加引用的前提是已经安装了NUnit了。下面我们就可以开始code test了。

[TestFixture]

public class Class1Test

{

[Test]

public void FindMaxTest()

{

int[] arr1 ={ 1, 3, 10, 4 };

int[] arr2 ={ 3, 10, 4, 1 };

int[] arr3 ={ 1, 10, 4, 3 };

int[] arr4 ={ -1, -3, -5 };

Class1 myclass =new Class1();

Assert.AreEqual(10, myclass.FindMax(arr1));

Assert.AreEqual(10, myclass.FindMax(arr2));

Assert.AreEqual(10, myclass.FindMax(arr3));

Assert.AreEqual(-1, myclass.FindMax(arr4));

}

}

我们先来解析一下这个类吧:[TestFixture]是NUnit的一个重要的属性,可以说是NUnit的一个标记吧,它向编译工具“宣布”:我要测试啦。[Test]一般用在一个函数之前,而且这个函数必须是public类型,而且无返回值,即void。

类与测试类写完了。编译好之后,可以得到一个dll文件。

打开NUnit,点击file->open,选择刚刚编译的dll文件,这样就把文件加载到NUnit了,在它的界面的左边,我们可以看到刚才编写的测试函数FindMaxTest,选择工程项目,或是文件,或是测试函数,然后点击界面右边的Run,如果一路绿灯,测试通过!

时间: 2024-10-17 08:25:37

NUnit属性-百度Nunit-Gui的相关文章

NUnit属性

原文地址:http://www.cnblogs.com/Byrd/p/3727043.html  TestFixture:它标记一个类包含测试,申明该类是用来测试的.一般用在class的定义之前: Test一般是放在method之前,表示对该方法的测试:如前一篇文章所示的class. SetUp/TearDown属性:这两个属性一般是用来对资源的初始化/清除的,每个测试的method之前/之后都会调用这两个属性所测试的函数.一般用来处理共享数据的初始化/清除. TestFixtureSetUp/

python学习日记-百度翻译GUI

跟女朋友聊天的时候,女朋友抱怨每次翻译都要打开百度网页上找,这让我有了做一个小的翻译界面的想法,搜索百度翻译居然发现其有API,正合我意,上百度翻译开放平台注册一个个人测试帐号就可以了,东拼西凑,做出了来一个小程序,代码如下: 1 # coding=utf-8 2 from Tkinter import * 3 import tkMessageBox 4 import urllib2 5 import hashlib 6 import json 7 8 9 trans_id = '*******

NUnit的安装

前言:NUnit是什么? NUnit 是一个单元测试框架,专门针对于.NET来写的.NUnit是xUnit家族种的第4个主打产品,完全由C#语言来编写,并且编写时充分利用了许多.NET的特性,比如反射,客户属性等等.最重要的一点是它适合于所有.NET语言. 一.NUnit的安装 1.下载NUnit(NUnit-2.6.4.msi),双击点击安装直到完成. 值得提醒的一点是,如果我们要写测试的类,需要引用nunit.framework 二.查看测试结果(推荐安装插件) 一般情况下,我们运行测试后想

C#单元测试Nunit小结(20141018)

1. 下载和安装Nunit工具: NUnit是一款堪与JUnit齐名的开源的回归测试框架,供.net开发人员做单元测试之用,可以从www.nunit.org网站上免费获得,然后在系统中安装: 2. 在VS2010中做配置: ? 选择[工具]--[外部工具--] ? 点击[添加],在<标题>和<命令>中分别填写名称和指定外部工具启动的exe ? 在[工具]下面可以看到刚添加配置的外部工具"Nunit2.6",后面就可以直接通过VS这里来启动Nunit: 3. 单元

单元测试之NUnit二

NUnit 分三篇文章介绍,入门者可阅读文章,有基础者直接参考官方文档.初次写博客,望大家指点. 导航: 单元测试之NUnit一 单元测试之NUnit二 单元测试之NUnit三 本文介绍常用的NUnit属性特性和断言. 常用属性 更多属性参考官方文档 1. Test Attribute 标记一个方法为测试方法. /// <summary> /// 简单标记方法为测试方法 /// </summary> [Test] public void Add() { Assert.AreEqua

单元测试之NUnit一

NUnit 分三篇文章介绍,入门者可阅读文章,有基础者直接参考官方文档.初次写博客,望大家指点. 导航: 单元测试之NUnit一 单元测试之NUnit二 单元测试之NUnit三 NUnit是什么? NUnit .net 语言单元测试框架.最初是从JUnit移植过来的,目前已经发布3.0版本.新版本重写了许多新特性,并且支持许多 .net 平台.有关NUnit的介绍详见官网. 选择产品 NUnit提供两种运行方式执行测试代码.控制台运行启动快,但不利于交互.图形运行是一个WinForm程序,灵活控

单元测试(一)-NUnit基础

单元测试作为提高代码和软件质量的有效途径,其重要性和益处自不必多说,虽然我没有实践过TDD之类,但坚信单元测试的积极作用.作为一种开发方法,单元测试早在上世纪70年代就已经在Smalltalk语言被运用了,这么多年来,单元测试一次又一次证明了自身的价值,在各种开发方式此起彼伏的浪潮中,经受住了时间的考验. 现在,俺也开始学习了,并在以后好好实践.这个系列的学习素材为Roy Osherove所著The Art of Unit Testing with examples in C#, 2nd Edi

C# Nunit Unit Testing

http://www.youtube.com/watch?v=1TPZetHaZ-A          Introduction To NUnit 1. create Nunit test case (1)new Project -> Class Library C# (2) add new item -> Class C# (3) add service :nunit.framework.dll (4) add using NUnit.Framework; (5) code namespac

如何使用Nunit进行测试

如何使用Nunit进行测试(Visual Studio 2017 comminity) 原文:如何使用Nunit进行测试(Visual Studio 2017 comminity) 一.环境 操作系统:Windows 版本 10.0.15063 64位集成环境:Visual Studio 2017 comminity(此后简称vs2017)编程语言:C#目标框架:.NET Framework 4.6.3测试框架:NUnit3,涉及到的组件NUnit 3 Test Adapter(V3.8.0),