TestFixture:它标记一个类包含测试,申明该类是用来测试的。一般用在class的定义之前;

Test一般是放在method之前,表示对该方法的测试;如前一篇文章所示的class。

SetUp/TearDown属性:这两个属性一般是用来对资源的初始化/清除的,每个测试的method之前/之后都会调用这两个属性所测试的函数。一般用来处理共享数据的初始化/清除。

TestFixtureSetUp/TestFixtureTearDown 也是用来对资源的初始化/清除的,但是它是用来标记test fixture初始化/清除一次时使用的,即整个测试过程中,只调用一次,一般用来标记连接数据库的方法。

Ignore属性:不用说大家也都能猜到是什么意思吧。当一个method还没有完成时,我们可以在它的测试函数前面加上该属性,当然也还要加上 [Test]标签,那么在测试的时候,NUnit就会忽略对该函数的测试啦。等到该method完成之后,再去掉该[Ignore]标签,让它不再被忽 略。

ExpectedException:有的函数会抛出某些异常,我们就可以写测试函数来判断该异常结果是否是预料之中的,如判断某个对象是否为空:

 1.AreEqual()和AreNotEqual()方法,用来查看两个对象的值是否相等或不等,与对象比较中使用的Equals()方法类似。

  2.AreSame()和AreNotSame()方法,用来比较两个对象的引用是否相等或不等,类似于通过“Is”或“==”比较两个对象。

  3.Contains()方法,用来查看对象是否在集合中,集合类型应与System.Collections.IList兼容。示例:

    Dim o As New Object
    Dim al As New ArrayList
    al.Add(o)
    Assert.Contains(o, al)
  4.Greater()和Less()方法,用来比较两个数值的大小,前者相当于大于号(>),后者相当于小于号(<)。

  5.IsInstanceOfType()和IsNotInstanceOfType()方法,用来判断对象是否兼容于指定类型。示例:

    Dim t As Type = New Object().GetType
    Dim s As String = ""
    Assert.IsInstanceOfType(t, s)
由于Object是.net中所有类型的基类,String类型兼容于Object,因此这个示例是能够运行通过的。而下边这个示例运行将是失败的:

    Dim t As Type = New ArrayList().GetType
    Dim s As String = ""
    Assert.IsInstanceOfType(t, s)
  6.IsAssignableFrom()和IsNotAssignableFrom()方法,用来判断对象是否是指定类型的实例。示例:

    Dim t As Type = New Object().GetType
    Dim s As String = ""
    Assert.IsAssignableFrom(t, s)
这个示例与之前的示例是一样的,但由于字符串s不是Object类型的,因此无法运行通过。而下边这个实例可以运行通过:
    Dim t As Type = New String("").GetType
    Dim s As String = ""
    Assert.IsAssignableFrom(t, s)
  7.IsFalse()和IsTrue()方法,用来查看变量是是否为false或true,如果IsFalse()查看的变量的值是false则测试成功,如果是true则失败,IsTrue()与之相反。

  8.IsNull()和IsNotNull()方法,用来查看对象是否为空和不为空。
  9.IsEmpty()和IsNotEmpty()方法,用来判断字符串或集合是否为空串或没有元素,其中集合类型应与ICollection兼容。

  10.IsNaN()方法,用来判断指定的值是否不是数字。
  11.Fail()方法,意为失败,用来抛出错误。我个人认为有两个用途:首先是在测试驱动开发中,由于测试用例都是在被测试的类之前编写,而写成时又不清楚其正确与否,此时就可以使用Fail方法抛出错误进行模拟;其次是抛出意外的错误,比如要测试的内容是从数据库中读取的数据是否正确,而导致错误的原因却是数据库连接失败。

  12.Ignore()方法,意为忽略,用来忽略后续代码的执行,用途可以参考Fail()方法。
此外,NUnit还提供了一个专用于字符串的静态类NUnit.Framework.
StringAssert,该类主要包含4个方法:
  1.Contains()方法,用来查看指定的第二个字符串中是否包含了第一个字符串。
  2.StartsWith ()和EndsWith
()方法,分别用来查看指定的第一个字符串是否位于第二个字符串的开头和结尾。
  3.AreEqualIgnoringCase()方法,用来比较两个字符串是否相等。

最后是在netTest类库里面的一个小小的测试的方法,可以试试。

using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework;

namespace NUNIT
{

[TestFixture]//声明该类是用来进行测试的
    public class
netTest
    {
       
[Test]//表示该方法需要进行测试的
       
public void TestA()
       
{
           
int d, i;
           
for (i = 0; i < 10; i++)
           
{
               
d = i;
           
}
           
Assert.AreEqual(10, i);//判断预期值是否是10
       
}
       
[Test]
       
public void TestB()
       
{
           
int d, i;
           
for (i = 0; i < 10; i++)
           
{
               
d = i;
           
}
           
Assert.AreEqual(11, i);//判断预期值是否是11
       
}
    }
}

NUnit属性的更多相关文章

  1. 使用NUnit为游戏项目编写高质量单元测试的思考

    0x00 单元测试Pro & Con 最近尝试在我参与的游戏项目中引入TDD(测试驱动开发)的开发模式,因此单元测试便变得十分必要.这篇博客就来聊一聊这段时间的感悟和想法.由于游戏开发和传统软 ...

  2. Nunit工具做C#的单元测试

      Nunit工具做C#的单元测试 学习心得 编写人:罗旭成 时间:2013年9月2日星期一 1.开发人员如何做单元测试 单元测试是针对最小的可测试软件元素(单元)的,它所测试的内容包括单元的内部结构 ...

  3. C# ~ NUnit单元测试

    单元测试 单元测试(Unit Test)的一个测试用例(Test Case)是一小段代码,用于测试一个小的程序功能的行为是否正常,保证开发的功能子项能正确完成并实现其基本功能.一个单元测试是用于判断某 ...

  4. NUnit使用详解(一)

    转载:http://hi.baidu.com/grayworm/item/38e246165aa7b9433a176e90 NUnit是一个单元测试框架,专门针对于.NET来写的,它是是xUnit的一 ...

  5. Nunit的尝试

    (ps:没有代码,只有理论) 单元测试 单元测试(Unit Test)的一个测试用例(Test Case)是一小段代码,用于测试一个小的程序功能的行为是否正常,保证开发的功能子项能正确完成并实现其基本 ...

  6. Nunit单元测试入门学习随笔(一)

    Nunit单元测试 一.插件安装与项目关联 选择工具~扩展和更新 点击联机~搜索Nunit安装图内三个插件 新建单元测试项目 勾选项目引用 二.Nunit学习 1.了解单元测试 单元测试在我的理解是测 ...

  7. Nunit与Xunit介绍

    Nunit安装 首先说下,nunit2.X与3.X版本需要安装不同的vs扩展. nunit2.x安装 安装如上3个,辅助创建nunit测试项目与在vs中运行单元测试用例 . 1.Nunit2 Test ...

  8. 单元测试之NUnit二

    NUnit 分三篇文章介绍,入门者可阅读文章,有基础者直接参考官方文档.初次写博客,望大家指点. 导航: 单元测试之NUnit一 单元测试之NUnit二 单元测试之NUnit三 本文介绍常用的NUni ...

  9. 单元测试之NUnit一

    NUnit 分三篇文章介绍,入门者可阅读文章,有基础者直接参考官方文档.初次写博客,望大家指点. 导航: 单元测试之NUnit一 单元测试之NUnit二 单元测试之NUnit三 NUnit是什么? N ...

随机推荐

  1. debounce与throttle区别

    在2011年,Twitter网站曾爆出一个问题:在主页往下滚动时,页面会变得缓慢以致没有响应.John Resig发表了一篇文章< a blog post about the problem&g ...

  2. PenMount Touch显示鼠标指针驱动安装

    /******************************************************************************* * PenMount Touch显示鼠 ...

  3. static才是对代码的提升

    static才是对代码的提升 static的作用有如下三条: 1):隐藏. 当编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性. 一个是a.c,另一个是main.c. 下面是a ...

  4. matlab滤波器的设计

    求出濾波器的階數以及 3dB 截止頻率後,可用相應的 Matlab 函數計算出實現傳遞函數的分子分母係數來.巴特沃斯型濾波器是通帶內最大平坦.帶外單調下降型的,其計算命令是:[b,a] = butte ...

  5. fn project 扩展

    目前支持的扩展方式   Listeners - listen to API events such as a route getting updated and react accordingly. ...

  6. gogs docker 安装

     1.  gogs 镜像      docker pull gogs/gogs    2.  mysql    docker mysql    3.  本地数据卷配置 mkdir gogs & ...

  7. C#中Cache的使用

    公共方法Add 将指定项添加到 Cache 对象,该对象具有依赖项.过期和优先级策略以及一个委托(可用于在从 Cache 移除插入项时通知应用程序). Equals(从 Object 继承) 已重载. ...

  8. js生成1~100随机数

    (function (min,max){ var range = max - min; var rand = Math.random(); var num = min + Math.round(ran ...

  9. 洛谷 2680 (NOIp2015) 运输计划

    题目:https://www.luogu.org/problemnew/show/P2680 因为是最长的时间最短,所以二分! 离线LCA可以知道路径长度.每次只看超过二分值的路径. 原本的想法是遍历 ...

  10. WS-* 协议

    Web服务作为实现SOA中服务的最主要手段.跟Web Service相关的标准,它们大多以“WS-”作为名字的前缀,所以统称WS-*. Web服务最基本的协议包括UDDI,WSDL和SOAP,通过它们 ...