vs 2010 NOget 包 安装NUnitTDNet,下载TestDriven.NET(http://www.testdriven.net/)。

准备动作

  1. 先到http://www.testdriven.net/download.aspx网站上下载Personal Version(个人版,就这个是免费的),然后安装,默认安装即可。
  2. 根据安装路径将nunit.framework.dll拷贝出来到一个单独的文件夹内,就叫DLL吧以方便使用,如果是默认安装的话路径如下:

C:/Program Files/TestDriven.NET 2.0/NUnit/2.5/net-2.0/framework

新建一个程序集

可以命名这个程序集为TestDriven_NetSample

使用TestDriven.Net的属性进行测试

一、将上面说的DLL文件夹拖动到程序集中,然后引用nunit.framework.dll

二、新建一个类,命名为DomainTest,然后将下面的代码加入到新的类中

//为程序添加引用

using NUnit.Framework;

namespace TestDriven_NetSample

{

[TestFixture]

public class DomainTest

{

private int x = 0;

[SetUp]

public void Init_X()

{

x = 10;

}

[Test]

public void Get_X()

{

Assert.AreEqual(10, x);

}

[TearDown]

public void Drop_X()

{

x = -1;

}

}

}

三、在private int x = 0;处设置一个断点,然后点中Get_X()函数右键,如下图操作:

然后按F11就可以跟踪程序的执行顺序及变量x的值的变化,看看具体情况是如何的

TestDriven.Net的常用属性简介

之所以说是TestDriven.Net常用属性的简介,是因为这里并没有介绍全部的TestDriven.Net的属性,而只是介绍了一部分常用的属性,如果需要用到这些属性之外的属性请参考下面的链接:http://www.cnblogs.com/lyj/archive/2008/09/03/1283390.html

1)        TestFixture属性

这个属性用来修饰测试类,表示这个类包含了测试方法,它是其它所有测试属性的先决条件,没有它其它的属性无效。

注意:使用这个属性修饰类有一些限制:即其修饰的类必须是public的,而且必须有一个缺省的构造函数。

2)        SetUp属性

这个属性用来修饰方法,修饰后这个方法在每个测试方法被调用之前执行。

3)        Test属性

这个属性用来修饰方法,表示该方法为测试方法。

注意:测试方法不能带有参数,否则无法对其进行测试

4)        TearDown属性

这个属性用来修饰方法,说明这个方法是在每个测试方法被调用完之后执行。

断言——您的检察官

  • 什么是断言:类似于断点,可以让我们检查程序的执行是否和我们的预期一致。
  • 断言概述:在测试框架中,断言是单元测试的核心,我们在测试中要对程序断言,如果某个断言失败,程序会报告一个错误。如果一个测试包含多个断言,那些紧跟失败断言的那些断言就都不会执行,因此每个测试方法最好只有一个断言。
  • 举例,将Get_X()函数中的内容替换成如下:

public void Get_X()

{

Assert.AreEqual(10, x);

Assert.AreNotEqual(1, x);

//Assert.AreEqual(1, x);

}

然后执行,看结果如何;再将被注释掉的语句取消注释,然后执行,看结果如何。这是出现错误时的结果(注意红色的部分):

------ Test started: Assembly: DAL.Test.dll ------

TestCase 'TestDriven_NetSample.DomainTest.Get_X' failed:

Expected: 1

But was:  10

vs 单元测试的更多相关文章

  1. Intellij idea添加单元测试工具

    1.idea 版本是14.0.0 ,默认带有Junit,但是不能自动生成单元测试,需要下载JunitGererator2.0插件 2.Settings -Plugins,下载 JunitGenerat ...

  2. Python的单元测试(二)

    title: Python的单元测试(二) date: 2015-03-04 19:08:20 categories: Python tags: [Python,单元测试] --- 在Python的单 ...

  3. Python的单元测试(一)

    title: Python的单元测试(一) author: 青南 date: 2015-02-27 22:50:47 categories: Python tags: [Python,单元测试] -- ...

  4. javascript单元测试框架mochajs详解

    关于单元测试的想法 对于一些比较重要的项目,每次更新代码之后总是要自己测好久,担心一旦上线出了问题影响的服务太多,此时就希望能有一个比较规范的测试流程.在github上看到牛逼的javascript开 ...

  5. 使用NUnit为游戏项目编写高质量单元测试的思考

    0x00 单元测试Pro & Con 最近尝试在我参与的游戏项目中引入TDD(测试驱动开发)的开发模式,因此单元测试便变得十分必要.这篇博客就来聊一聊这段时间的感悟和想法.由于游戏开发和传统软 ...

  6. 我这么玩Web Api(二):数据验证,全局数据验证与单元测试

    目录 一.模型状态 - ModelState 二.数据注解 - Data Annotations 三.自定义数据注解 四.全局数据验证 五.单元测试   一.模型状态 - ModelState 我理解 ...

  7. ABAP单元测试最佳实践

    本文包含了我在开发项目中经历过的实用的ABAP单元测试指导方针.我把它们安排成为问答的风格,欢迎任何人添加更多的Q&A's,以完成这个列表. 在我的项目中,只使用传统的ABAP report. ...

  8. python_单元测试unittest

    Python自带一个单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 步骤1:首先引入unittest模块--import un ...

  9. .Net中的AOP系列之《单元测试切面》

    返回<.Net中的AOP>系列学习总目录 本篇目录 使用NUnit编写测试 编写和运行NUnit测试 切面的测试策略 Castle DynamicProxy测试 测试一个拦截器 注入依赖 ...

  10. React单元测试——十八般兵器齐上阵,环境构建篇

    一个完整.优秀的项目往往离不开单元测试的环节,就 github 上的主流前端项目而言,基本都有相应的单元测试模块. 就 React 的项目来说,一套完整的单元测试能在在后续迭代更新中回归错误时候给与警 ...

随机推荐

  1. eclipse中配置jbpm3.2插件

    1.什么是jbpm?为什么要使用jbpm呢? 通俗一点讲,jbpm是一个负责管理工作流的一个产品,那么什么是工作流呢,所谓的工作流就是在办公自动化系统中,提交申请,申请经过多个部门领导审批,完成该流程 ...

  2. [Java多线程]-Thread和Runable源码解析之基本方法的运用实例

    前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...

  3. js知识点乱炖

    修改属性 元素.style.样式=值     document.getElementById('box').style.width='200px'; 属性操作方式 1.. 的 元素.属性名如果属性是单 ...

  4. 《Apache HttpClient 4.3开发指南》

    转载自:http://blog.csdn.net/chszs/article/details/16854747 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chs ...

  5. 莫队 Codeforces Round #340 (Div. 2) E

    题目大意:给你一个长度为n的序列,有m个询问,每次询问一个区间[L,R],表示这个区间内,有多少的a[i]^a[i+1].....^a[j]=k. 思路:莫队去搞就好了 我们定义pre[i]=a[1] ...

  6. JVM学习三:JVM之类加载器之连接分析

    学习完类加载之加载篇后,让我们继续来看加载之连接,连接分为三个步骤:验证.准备和解析三步,我们将一一分析之. 连接就是将已经读入到内存的类的二进制数据合并到虚拟机的运行时环境中去. 类加载完毕之后进入 ...

  7. lazyload support for Zepto.js

    关于lazyload,很久之前整理过它的文档:<Lazy Load(1.7.0)中文文档 -- 延迟加载图片的jQuery插件> 因为懒,所以才要用lazyload.但lazyload用了 ...

  8. Map总结

    Map是键值对集合,是一对一对往上存的,要保持键的唯一性 形式:Map<K, V> 方法: 增 put(K key, V value) 若存储时Map中有相同的键,则返回原来键的值,并覆盖 ...

  9. Spring: J2EE框架

    Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本.该框架基于 Exper ...

  10. UVA - 10494 If We Were a Child Again

    用java写的大数基本操作,java要求的格式比较严谨. import java.util.*; import java.math.*; public class Main { public stat ...