使用 NUnit 工具来进行单元测试

首先在要创建一个单元测试的项目,通常在原有的解决方案中添加新项目, 在弹出的项目类型中选择单元测试,项目的命名一般情况下与解决方案的名称相同后加UnitTest

然后在项目中添加一个单元测试的类, 类的名称与要测试的类的名字相同,也是后缀加UnitTest, 在单元测试项目中添加引用   NUnit.Framework.dll, 而后在单元测试的类的头部添加引用  using NUnit.Framework;

在测试类的上部添加特性  [TestFixture] 表示: 要对这个类进行测试

然后创建一个测试方法, 测试方法的名字命名与测试类的命名相同, 就是在要测试的方法名后缀Test,在测试的方法上面要添加特性[Test] 表示的是: 这是个测试的方法,如果没有什么语法错误,对单元测试项目进行重新编译。

using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Demon;
using NUnit.Framework; namespace DemonUnitTest
{
/// <summary>
/// CalcuteTest 的摘要说明
/// </summary>
[TestFixture]
public class CalcuteTest
{ Calculate mycal = new Calculate (); [Test]
public void GetSumTest()
{
int a =4;
int b =6; int sum =mycal.GetSum(a,b); Assert.AreEqual(10,sum); } [Test]
public void GetResultTest()
{ int result = mycal.GetResult(5);
Assert.AreEqual(15, result);
}
}
}

打开 Nunit, 选择file --> open project  找到刚才单元测试项目中生成的 dll 文件, 选择确定。这样在 nunit 中就能看到里面的测试方法,对每一个测试方法进行运行,如果出现绿色,那么恭喜你,测试通过,如果出现红色的警告,则表示方法没有通过测试,可以根据测试的结果反馈信息来对编写的方法进行修改,直到能达到预期效果,也就是通过单元测试。

还有一种方法就是在项目中直接使用vs 自带的单元测试功能 一般在创建项目时,就会提示是否要添加单元测试项目, 默认的情况下,会创建一个与解决方案同名的后缀Test的单元测试项目。这种情况下,通过添加单元测试模板来添加单元测试类,与 NUnit不同的是, 要引用vs 自带的单元测试框架 using Microsoft.VisualStudio.TestTools.UnitTesting;

在单元测试的类上添加特性     [TestClass] 表示的是这是一个测试类 在测试的方法上添加特性     [TestMethod] 表示的是这是一个测试方法

测试方法的编写与 NUnit 方法相同,但是通过打断点,调试的方式来进行测试的

using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting; namespace DemonUnitTest
{
/// <summary>
/// CalcuteTest2 的摘要说明
/// </summary>
[TestClass]
public class CalcuteTest2
{
public CalcuteTest2()
{
//
//TODO: 在此处添加构造函数逻辑
//
} private TestContext testContextInstance; /// <summary>
///获取或设置测试上下文,该上下文提供
///有关当前测试运行及其功能的信息。
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
} #region 附加测试特性
//
// 编写测试时,可以使用以下附加特性:
//
// 在运行类中的第一个测试之前使用 ClassInitialize 运行代码
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
//
// 在类中的所有测试都已运行之后使用 ClassCleanup 运行代码
// [ClassCleanup()]
// public static void MyClassCleanup() { }
//
// 在运行每个测试之前,使用 TestInitialize 来运行代码
// [TestInitialize()]
// public void MyTestInitialize() { }
//
// 在每个测试运行完之后,使用 TestCleanup 来运行代码
// [TestCleanup()]
// public void MyTestCleanup() { }
//
#endregion [TestMethod]
public void TestMethod1()
{
//
// TODO: 在此处添加测试逻辑
//
} Demon.Calculate mycal = new Demon.Calculate(); [TestMethod]
public void GetSumTest()
{
int a = 4;
int b = 6; int sum = mycal.GetSum(a, b); Assert.AreEqual(10, sum); }
}
}

总之不能为了通过单元测试而进行测试,或修改测试方案,这样即使通过了单元测试,但隐藏了方法的错误算法设计或逻辑处理,当在待定或着实际的场境下,问题还是会暴露的,所以应该严格对待单元测试,不能为了单元测试而测试。

单元测试工具NUnit的使用的更多相关文章

  1. 如何快速上手.net下单元测试工具NUnit?

    NUnit基本使用 准备知识: 读此博文需要了解单元测试基本概念及NUnit的的安装. 传送门:单元测试之道(使用NUnit) 1.常见的错误 当学习一个新东西时,先学习错误,是最快的方式. 1.1 ...

  2. 单元测试工具Nunit

    原文链接:http://blog.csdn.net/snowshinoy/article/details/6951352 调试 附加到: nunit-agent.exe进程:

  3. 在.NET开发中的单元测试工具之(1)——NUnit

    NUnit介绍 NUnit是一个专门针对于.NET来写的单元测试框架,它是xUnit体系中的一员,在xUnit体系中还有针对Java的JUnit和针对C++的CPPUnit,在开始的时候NUnit和x ...

  4. 在.NET开发中的单元测试工具之——NUnit

    NUnit介绍 NUnit是一个专门针对于.NET来写的单元测试框架,它是xUnit体系中的一员,在xUnit体系中还有针对Java的JUnit和针对C++的CPPUnit,在开始的时候NUnit和x ...

  5. 单元测试与Nunit的基本使用

    一.单元测试是什么 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证.对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,C# ...

  6. 单元测试工具之Xunit

    在.NET开发中的单元测试工具之——xUnit.Net  原始出处 http://zhoufoxcn.blog.51cto.com/792419/1172320 在上一篇<在.NET开发中的单元 ...

  7. 单元测试工具 SmokeTest

    .NET 程序集单元测试工具 SmokeTest Smoke Test(冒烟测试),也称Regression Test(回归测试),是对软件的安装和基本功能的测试.一般地我们使用脚本来实现Smoke ...

  8. 在.NET开发中的单元测试工具之(2)——xUnit.Net

    在上一篇<在.NET开发中的单元测试工具之(1)——NUnit>中讲述了如何使用NUnit在.NET开发中进行单元测试以及NUnit的一些缺点,今天将讲述如何使用xUnit.Net来进行单 ...

  9. 单元测试(一)-NUnit基础

    单元测试作为提高代码和软件质量的有效途径,其重要性和益处自不必多说,虽然我没有实践过TDD之类,但坚信单元测试的积极作用.作为一种开发方法,单元测试早在上世纪70年代就已经在Smalltalk语言被运 ...

随机推荐

  1. word2vec 小测试

    Bag-of-words Model Previous state-of-the-art document representations were based on the bag-of-words ...

  2. centos7安装mysql5.7的终极解决方案

    在centos7中安装最新版本mysql5.7.10可能会出现各种各样的问题,不管出现什么问题,先仔细阅读下面,或许对你有帮助! 1.systemctl stop mysqld.service 关闭m ...

  3. ElasticSearch(八):springboot集成ElasticSearch集群并使用

    1. 集群的搭建 见:ElasticSearch(七) 2. springboot配置集群 2.1 创建springboot项目,使用idea创建,不过多介绍(创建项目时候建议不要勾选elastics ...

  4. es6语法快速上手(转载)

    一.相关背景介绍 我们现在大多数人用的语法javascript 其实版本是ecmscript5,也是就es5.这个版本己经很多年了,且完美被各大浏览器所支持.所以很多学js的朋友可以一直分不清楚es5 ...

  5. SELENIUM如何调用FIREFOX时加载插件

    当selenium调用firefox时,会发现这个firefox里干净的如同一盆清水,自己定制安装的那些插件都不翼而飞了,这个时候那些插件自然就不能使用了,但是当前又必须使用插件该如何是好呢? 解决办 ...

  6. 【转】每天一个linux命令(46):vmstat命令

    原文网址:http://www.cnblogs.com/peida/archive/2012/12/25/2833108.html vmstat是Virtual Meomory Statistics( ...

  7. centos 修改host

    centos 修改host vi /etc/hosts添加一行127.0.0.1 test.com /etc/rc.d/init.d/network restart

  8. Jsp Session

    1. Session的定义 Session用于跟踪客户的状态. Session指的是在一段时间内,单个客户与Web服务器的一连串相关的交互过程.在一个Session中 ,客户可能多次请求访问同一个网页 ...

  9. Eclipse-Java EE

    1.1 下载JDK 在Java官方网站下载最新版本的 Java SE:  http://www.oracle.com/technetwork/java/javase/downloads/index.h ...

  10. css-深入理解margin和padding

    最近一阶段从新学习了css,发现真的有很多很多的地方都是空白的,今天我们来总结一下margin和padding的一些不为人知的秘密! 一利用float和margin实现布局 我们首先来实现一个两列示布 ...