Nunit 学习

  看了下NUnit,大概了解了点皮毛,为了使印象更深点,所以写了这篇文章来记录一下。

  NUnit使一个免费开源的单元测试框架,专门针对于.Net来写的产品。(http://www.nunit.org)

  其实在之前有Junit(java),CPPUnit(C++),他们都是xUnit的一员。最初,它是从JUnit而来,现在的版本是2.5.2.接下来我所用的都是基于这个版本.

  NUnit最初是由James W. Newkirk, Alexei A. Vorontsov 和Philip A. Craig,后来开发团队逐渐庞大起来.在开发过程中, Kent Beck 和ErichGamma2位牛人也提供了许多帮助.看来对于NUnit还真是下了一番力气了 。

  NUnit是xUnit家族种的第4个主打产品,完全由C#语言来编写,并且编写时充分利用了许多.NET的特性,比如反射,客户属性等等.

  最重要的一点是它适合于所有.NET语言.

  1. 简单示例

  1).新建项目

  2).添加对 nunit.framework.dll 的引用。

  3).创建一个类 NumberOperate.cs

  

  4).创建一个测试类 TestNUnit.cs

  

  5).直接运行nunit.exe

  

    ( 当然这里也可以项目右键-->调试

  )。

 2.一些常用的属性:

  1) [TestFixture]写在测试类的前面,这样NUnit才会加载这个类

  2) [Test] 写在方法的前面,这样NUnit的run会执行测试方法。

  3) [ExpectedException(typeof(DivideByZeroException))]写在方法的前面,[Test]的后面。测试是否有相应错误的抛出,当出现被除数为0的时候,NUnit测试条会显示绿色,而不会显示错误的红色。typeof(DivideByZeroException)里面的错误类型是可以自行选择定义的。

  4) [SetUp] 写在方法的前面,表示每个case执行的时候都调用,用来测试前的初始化工作。

  5) [TearDown]销毁,资源回收,好比编程的时候,建立数据库连接,用完了还要关闭连接.该标记后面的方法会在各个case执行完毕后执行.

  6) [TestfixtureSetUp]和[SetUp]不同的是,只在Test类开始的时候执行一次,不是在每个case都执行一次.

  7) [TestfixtureTearDown]和[TearDown]不同的是,不是在每个case的后面都执行,而是在整个Test类执行最后才执行一次.

  8) [Ignore]忽略,加在方法的前面,则该case在NUnit 执行的时候,会被忽略,进度条显示黄色.对应参数:[Ignore("这里写下你想在NUnit忽略该case的时候想要说明的忽略原因,字符串类型")],该case即使在NUnit界面选定也不能执行.

  9) [Test,Explicit]显示的执行.该用法会让对应的case在NUnit执行的时候跳过,但是和[Ignore]不同的是,该case在NUnit界面选定后可以被执行,不被选定的时候不会执行.

  10) [Category("组名称")]对应的方法会被编组为"组名称",在NUnit左边的标签Categories里会显示组名,点击add按钮会讲选择的组推到下面的框体里,这个时候按Run按钮会执行下面栏里的组,如果点选了那个Excluded ....按钮,则,在下面栏的组在NUnit执行的时候不会被执行.其实看字都能明白了,上面的栏是Available的组,既存在的组,下面的栏是选择的组.简单的说,被选定的组,既在下面栏的组是要被执行的,而不在这里面的组是显式执行,既鼠标点选该case的时候才会执行.

原文地址:https://www.cnblogs.com/bs5168/p/2192101.html