vs 单元测试
vs 2010 NOget 包 安装NUnitTDNet,下载TestDriven.NET(http://www.testdriven.net/)。
准备动作
- 先到http://www.testdriven.net/download.aspx网站上下载Personal Version(个人版,就这个是免费的),然后安装,默认安装即可。
- 根据安装路径将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 单元测试的更多相关文章
- Intellij idea添加单元测试工具
1.idea 版本是14.0.0 ,默认带有Junit,但是不能自动生成单元测试,需要下载JunitGererator2.0插件 2.Settings -Plugins,下载 JunitGenerat ...
- Python的单元测试(二)
title: Python的单元测试(二) date: 2015-03-04 19:08:20 categories: Python tags: [Python,单元测试] --- 在Python的单 ...
- Python的单元测试(一)
title: Python的单元测试(一) author: 青南 date: 2015-02-27 22:50:47 categories: Python tags: [Python,单元测试] -- ...
- javascript单元测试框架mochajs详解
关于单元测试的想法 对于一些比较重要的项目,每次更新代码之后总是要自己测好久,担心一旦上线出了问题影响的服务太多,此时就希望能有一个比较规范的测试流程.在github上看到牛逼的javascript开 ...
- 使用NUnit为游戏项目编写高质量单元测试的思考
0x00 单元测试Pro & Con 最近尝试在我参与的游戏项目中引入TDD(测试驱动开发)的开发模式,因此单元测试便变得十分必要.这篇博客就来聊一聊这段时间的感悟和想法.由于游戏开发和传统软 ...
- 我这么玩Web Api(二):数据验证,全局数据验证与单元测试
目录 一.模型状态 - ModelState 二.数据注解 - Data Annotations 三.自定义数据注解 四.全局数据验证 五.单元测试 一.模型状态 - ModelState 我理解 ...
- ABAP单元测试最佳实践
本文包含了我在开发项目中经历过的实用的ABAP单元测试指导方针.我把它们安排成为问答的风格,欢迎任何人添加更多的Q&A's,以完成这个列表. 在我的项目中,只使用传统的ABAP report. ...
- python_单元测试unittest
Python自带一个单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 步骤1:首先引入unittest模块--import un ...
- .Net中的AOP系列之《单元测试切面》
返回<.Net中的AOP>系列学习总目录 本篇目录 使用NUnit编写测试 编写和运行NUnit测试 切面的测试策略 Castle DynamicProxy测试 测试一个拦截器 注入依赖 ...
- React单元测试——十八般兵器齐上阵,环境构建篇
一个完整.优秀的项目往往离不开单元测试的环节,就 github 上的主流前端项目而言,基本都有相应的单元测试模块. 就 React 的项目来说,一套完整的单元测试能在在后续迭代更新中回归错误时候给与警 ...
随机推荐
- poj 3261 后缀数组 可重叠的 k 次最长重复子串
Milk Patterns Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 16430 Accepted: 7252 Ca ...
- 为Azure Web Site 添加ADFS验证支持之一 设置ADFS的信任关系
很多时候企业开发的应用都会通过AD(Active Directory)进行验证用户名密码的,在企业里面统一一个AD来进行账号密码管理也是一个很好的实践.当企业打算将一个应用迁移到Azure的时候,使用 ...
- Kubernetes Job配置
我们知道使用kubernetes的rc或者rs创建的pod,kubernetes会实时监控其健康状态,如果发现pod挂掉以后,会自动启动一个新的,让pod的数量始终保持在指定的replicas上.那么 ...
- 第4章-Vue.js 交互及实例的生命周期
一.学习目标 了解实例生命周期的过程 理解钩子函数的作用 掌握Vue.js过滤器的使用方法 (重点) 能够使用网络请求进行前后端交互 (重点.难点) 二.交互的基本概念 2.1.前端和后端的概念 说明 ...
- [DeeplearningAI笔记]卷积神经网络2.2经典网络
4.2深度卷积网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 [LeNet]--Lécun Y, Bottou L, Bengio Y, et al. Gradient-bas ...
- Vue.js和angular.js区别
Vue.js:易学 简单 指令以v.xxx 一片HTML代码配合json,在new出来Vue,js实例 个人维护项目 适用于移动端 应用超越了angular angular.js:上手难 指令以ng. ...
- 2.aop中几个注解的含义
参考地址:http://elim.iteye.com/blog/2395255
- Parencodings(模拟)
ZOJ Problem Set - 1016 Parencodings Time Limit: 2 Seconds Memory Limit: 65536 KB Let S = s1 s2 ...
- docker使用host模式启动nginx
mkdir -p /root/nginx-docker-demo/html docker run --network=host --rm --name mynginx --volume /root/n ...
- 【leetcode 简单】第二十题 合并两个有序数组
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n. ...