Jeff Wong原文 5分钟实现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
{
[Test]
public void AddTest()
{
var calc = new Calculator();
var result = calc.Add(, );
Assert.AreEqual(, result);
} [Test]
public void AddTestFailure()
{
var calc = new Calculator();
var result = calc.Add(, );
Assert.AreEqual(, result);
} [Test]
public void SingtonTest1()
{
var calc = Calculator.GetInstance();
Assert.IsNull(calc);
} [Test]
public void SingtonTest2()
{
var calc1 = Calculator.GetInstance();
var calc2 = Calculator.GetInstance();
Assert.IsTrue(object.Equals(calc1, calc2));
}
}
}

编译控制台项目,点击Visual Nunit 插件的“Run”按钮,然后一切清静了。

注:在上面的代码中引用 NUnit.Framework,使用TestFixture标注这是用于测试的类,在其中使用 Test表示具体的测试用例。可以看到单元测试中最重要的是断言,其他完全交给框架自动化。测试结果可以通过插件及时看到:

demo下载:UnitTestApp

参考:

1. 单元测试之道(使用NUnit)

2. 梦想成现实:用xUnit.net在单元测试中实现构造函数依赖注入

[转] VS 整合NUnit进行单元测试的更多相关文章

  1. 实现VS2010整合NUnit进行单元测试(转载)

    代码编写,单元测试必不可少,简单谈谈Nunit进行单元测试的使用方式: 1.下载安装NUnit(最新win版本为NUnit-2.6.4.msi) http://www.nunit.org/index. ...

  2. 5分钟实现VS2010整合NUnit进行单元测试

    本文转载自:http://www.cnblogs.com/jeffwongishandsome/archive/2012/03/18/2404845.html 1.下载安装NUnit(最新win版本为 ...

  3. 实现VS2010整合NUnit进行单元测试

    1.下载安装NUnit(最新win版本为NUnit.3.2.1.msi) http://www.nunit.org/index.php?p=download 2.下载并安装VS的Visual Nuni ...

  4. VS2010整合NUnit进行单元测试

    1.下载安装NUnit(最新win版本为NUnit-2.6.0.12051.msi) http://www.nunit.org/index.php?p=download 2.下载并安装VS的Visua ...

  5. springMVC整合Junit4进行单元测试

    springMVC整合Junit4进行单元测试 标签: springMVC整合Junit4junit单元测试教程springMVC入门教程   spring(10)  版权声明:本文为博主原创文章,未 ...

  6. 上传NUnit的单元测试结果和OpenCover的单元测试覆盖率到SonarQube服务中

    SonarQube.Scanner.MSBuild.exe begin /k:"OMDCCQuotes" /d:sonar.host.url="http://myip:9 ...

  7. Spring 整合 Junit4 进行单元测试

    1. pom.xml 引入JAR依赖: <dependency> <groupId>junit</groupId> <artifactId>junit& ...

  8. Spring整合Junit4进行单元测试

    一. 添加依赖包(maven) <dependency> <groupId>junit</groupId> <artifactId>junit</ ...

  9. Spring整合Junit进行单元测试

    I. 加入依赖包 Spring Test (如spring-test-2.5.4.jar) JUnit 4 Spring 其他相关包 II.新建Junit Test Case III.读取配置文件 @ ...

随机推荐

  1. CentOS安装Chrome

    问题 在CentOS安装Chrome会遇到 libstdc++.so.6(GLIBCXX_3.4.15)(64bit) 依赖失败的问题, 即使下载了最新的libstdc++.so.6(包含GLIBCX ...

  2. [iOS]iPhone推送原理

    推送原理,先上图 说一下原理吧, 由App向iOS设备发送一个注册通知 iOS向APNs远程推送服务器发送App的Bundle Id和设备的UDID APNs根据设备的UDID和App的Bundle ...

  3. MyBatis学习总结_09_使用MyBatis Generator自动创建代码

    一.构建一个环境 1. 首先创建一个表: CREATE TABLE t_user ( USER_ID INT NOT NULL AUTO_INCREMENT, USER_NAME CHAR(30) N ...

  4. SQL SERVER ->> Columnstore Index

    谈到Columnstore index就不得不提SQL SERVER的压缩技术了.Columnstore就是用到了SQL SERVER的压缩技术.Columnstore又分Columnstore和Co ...

  5. ubuntu下设置环境变量的三种方法【转】

    转自:http://blog.chinaunix.net/uid-26916352-id-3208366.html 通常设置环境变量有三种方法: 一.临时设置 export PATH=/home/ya ...

  6. NDK(1)配置ndk,含eclipse,Android Studio1.5.1

    现在的ndk配置已经非常简单,如果看到要cygwin的请关闭. 1,Eclipse 添加ndk linux,mac ,windows 相似, a.下载 ndk并解压, b.在eclipse的andro ...

  7. 总结Selenium自动化测试方法(六)常见的异常错误处理

    六.常见的异常错误处理 NoSuchElementException: Message: Unable to locate element: {"method":"xpa ...

  8. vi 每日练习

    vi 1.    4 空格 2.    ctrl + b, ctrl + f 3.     0 $ 4.    1G gg G 5.    10G 6.    10 回车 7.    / ? 8.   ...

  9. Android中的PopupWindow详解

      Android的对话框有两种:PopupWindow和AlertDialog.它们的不同点在于: AlertDialog的位置固定,而PopupWindow的位置可以随意 AlertDialog是 ...

  10. 函数lock_rec_has_expl

    判断是否预加锁的模式 要强壮于 已添加的lock锁模式 /*********************************************************************// ...