看了下NUnit,大概了解了点皮毛,为了使印象更深点,所以写了这篇文章来记录一下。
NUnit使一个免费开源的单元测试框架,专门针对于.Net来写的产品。()
其实在之前有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).新建项目
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的时候才会执行.