VS2010整合NUnit进行单元测试
1、下载安装NUnit(最新win版本为NUnit-2.6.0.12051.msi) http://www.nunit.org/index.php?p=download
2、下载并安装VS的Visual Nunit 2010 插件 http://visualstudiogallery.msdn.microsoft.com/c8164c71-0836-4471-80ce-633383031099
注:可通过VS的“视图”->“其他窗口”找到并打开该插件(快捷键:Ctrl+F7)
3、新建测试项目UnitTestApp(示例为简单的控制台应用程序),引入nunit.framework类库(默认安装后文件所在路径:C:\Program Files \NUnit 2.6\bin\framework\nunit.framewor.dll)

4、添加Calculator类,实现一个简单加法和获取单例方法
namespace UnitTestApp
{
public class Calculator
{
public int Add(int a, int b)
{
return a + b;
} private static readonly object objSync = new object();
private static Calculator instance = null; public static Calculator GetInstance()
{
if (instance == null)
{
lock (objSync)
{
if (instance == null)
{
instance = new Calculator();
}
}
}
return instance;
} }
}

5、新增NUnitTest类进行单元测试
using NUnit.Framework; namespace UnitTestApp
{
[TestFixture]
public class NUnitTest
{
private Calculator calc = null; [SetUp]
public void SetUp()
{
calc = new Calculator();
} [Test]
public void AddTest()
{
int result = calc.Add(, );
Assert.AreEqual(, result);
} [Test]
public void AddTestFailure()
{
int result = calc.Add(, );
Assert.AreEqual(, result);
} [Test]
public void SingtonTest1()
{
calc = Calculator.GetInstance();
Assert.IsNull(calc);
} [Test]
public void SingtonTest2()
{
calc = Calculator.GetInstance();
var calc2 = Calculator.GetInstance();
Assert.IsTrue(object.Equals(calc, calc2));
} [TearDown]
public void TearDown()
{
calc = null;
} }
}
编译控制台项目,点击Visual Nunit 插件的“Run”按钮,然后一切清静了。
注:在上面的代码中引用 NUnit.Framework,使用TestFixture标注这是用于测试的类,在其中使用 Test表示具体的测试用例。可以看到单元测试中最重要的是断言,其他完全交给框架自动化。测试结果可以通过插件及时看到:

demo下载:UnitTestApp
参考:http://www.cnblogs.com/leoo2sk/archive/2010/01/13/pragmatic-unit-testing-with-nunit.html
http://www.cnblogs.com/dudu/archive/2011/07/26/unit_testing_constructor_dependency_injection.html
基础知识:
[TestFixture]表示:类包含了测试代码(这个特性可以被继承)。这个类必须是公有的,这个类还必须有一个默认构造函数。
[Test]表示它是一个测试方法。测试方法的返回值必须为void并且不能带有参数
[SetUp]属性:用来标识方法,在开始所有测试之前执行,用来在测试前初始化一些资源,比如初始化类。
[TearDown]属性:用来标识方法,在所有测试完成之后执行,用来释放一些资源。
[Ignore]属性:用来标识方法,指示这个方法由于某些原因暂时不需要测试(比如没有完成相关代码)
Nunit常用类和方法
Assert(断言):
如果断言失败,方法将没有返回,并且报告一个错误。
如果一个方法中包括了多个断言,在失败的断言之后的所有断言将不会被执行。基于这个原因,最好是为每个测试的断言使用try语句。
1、测试二个参数是否相等
Assert.AreEqual( int expected, int actual );
Assert.AreEqual( decimal expected, decimal actual );
。。。。
2、测试二个参数是否引用同一个对象
Assert.AreSame( object expected, object actual );
Assert.AreNotSame( object expected, object actual );
3、测试一个对象是否被一个数组或列表所包含
Assert.Contains( object anObject, IList collection );
比较断言:
4、测试一个对象是否大于另一个对象
Assert.Greater( int arg1, int arg2 );
5、测试一个对象是否小于另一个对象
Assert.Less( int arg1, int arg2 );
类型断言:
Assert.IsInstanceOfType( Type expected, object actual );
条件测试:
Assert.IsTrue( bool condition );
Assert.IsFalse( bool condition);
Assert.IsNull( object anObject );
Assert.IsNotNull( object anObject );
Assert.IsNaN( double aDouble );
Assert.IsEmpty( string aString );
Assert.IsNotEmpty( string aString );
Assert.IsEmpty( ICollection collection );
Assert.IsNotEmpty( ICollection collection );
字符串断言(StringAssert):提供了许多检验字符串值的有用的方法
StringAssert.Contains( string expected, string actual );
StringAssert.StartsWith( string expected, string actual );
StringAssert.EndsWith( string expected, string actual );
StringAssert.AreEqualIgnoringCase( string expected, string actual );
VS2010整合NUnit进行单元测试的更多相关文章
- 实现VS2010整合NUnit进行单元测试(转载)
代码编写,单元测试必不可少,简单谈谈Nunit进行单元测试的使用方式: 1.下载安装NUnit(最新win版本为NUnit-2.6.4.msi) http://www.nunit.org/index. ...
- 5分钟实现VS2010整合NUnit进行单元测试
本文转载自:http://www.cnblogs.com/jeffwongishandsome/archive/2012/03/18/2404845.html 1.下载安装NUnit(最新win版本为 ...
- 实现VS2010整合NUnit进行单元测试
1.下载安装NUnit(最新win版本为NUnit.3.2.1.msi) http://www.nunit.org/index.php?p=download 2.下载并安装VS的Visual Nuni ...
- [转] VS 整合NUnit进行单元测试
Jeff Wong原文 5分钟实现VS2010整合NUnit进行单元测试 1.下载安装NUnit(最新win版本为NUnit-2.6.0.12051.msi) http://www.nunit.org ...
- springMVC整合Junit4进行单元测试
springMVC整合Junit4进行单元测试 标签: springMVC整合Junit4junit单元测试教程springMVC入门教程 spring(10) 版权声明:本文为博主原创文章,未 ...
- QT5.4.0安装以及与VS2010整合安装---64bit操作系统解决方案
QT5.4.0安装以及与VS2010整合安装---64bit操作系统解决方案 注意,目前QT官网不能下载,必须提供注册,然后才可以下载. 网上不同版本安装的细节有差异,特将我的安装相关操作贴出来,希望 ...
- C#整合VS2010和NUnit
软件下载 .Net单元测试工具 NUnit下载:http://www.nunit.org/index.php?p=download,最新的为NUnit-2.6.0.12051.msi,下载安装. VS ...
- 转:VS2010调试NUnit测试项目 (Running or debugging NUnit tests from Visual Studio without any extensions)
If you write unit tests and use NUnit test framework this may be helpful. I decided to write this si ...
- 上传NUnit的单元测试结果和OpenCover的单元测试覆盖率到SonarQube服务中
SonarQube.Scanner.MSBuild.exe begin /k:"OMDCCQuotes" /d:sonar.host.url="http://myip:9 ...
随机推荐
- 网页图表Highcharts实践教程标之添加题副标题版权信息
网页图表Highcharts实践教程标之添加题副标题版权信息 Highcharts辅助元素 辅助元素图表的非必要元素,如标题.版权信息.标签.载入动态.它们不和图表数据发生关联,只是额外说明一些基本信 ...
- Tecnomatix Process Designer & Process Simulate用法
1. 删除项目 在AdminConsole->Project Action中,点击Delete project即可.
- 22.python中的面向对象和类的基本语法
当我发现要写python的面向对象的时候,我是踌躇满面,坐立不安呀.我一直在想:这个坑应该怎么爬?因为python中关于面向对象的内容很多,如果要讲透,最好是用面向对象的思想重新学一遍前面的内容.这个 ...
- mysql三大特性、三范式、五大约束
1.数据库的三大特性 '实体':表 '属性':表中的数据(字段) '关系':表与表之间的关系 2.数据库设计三大范式 a:确保每列保持原子性(即数据库表中的所有字段值是不可分解的原子值) b:确保表中 ...
- CentOS 7使用yum安装Docker
安装依赖 # 配置阿里云源 # 备份 cp /etc/yum.repos.d/CentOS-Base.repo{,.bak'_'`date +%Y%m%d_%H%M%S`} # 下载 wget -O ...
- 【shell学习笔记】curl命令总结
2014-12-16 20:34 文思海辉 =========== CURL命令总结 1. 下载 curl -o [文件名称] www.baidu.com 2. 显示 HTTP request头信息 ...
- LPC18xx/43xx SWD/JTAG Debug Connector
- AT91 USB Composite Driver Implementation
AT91 USB Composite Driver Implementation 1. Introduction The USB Composite Device is a general way t ...
- 【Go命令教程】命令汇总
[Go命令教程]1. 标准命令详解 [Go命令教程]2. go build [Go命令教程]3. go install [Go命令教程]4. go get [Go命令教程]5. go clean [G ...
- 让TQ2440也用上设备树(2)
作者 作者:彭東林 郵箱:pengdonglin137@163.com QQ:405728433 软件版本 Linux-4.10.17 概述 在之前的博客里介绍了TQ2440上移植设备树的方法,其实, ...