利用VisualStudio单元测试框架举一个简单的单元测试例子
本随笔很简单,不涉及mock和stub对象,而是只给出一个简单的利用Visual Studio单元测试框架的最简单例子。如果需要深入理解Unit Test的原理与艺术,请参考《The art of Unit testing:with examples in .NET》
1.首先要知道你要测试什么,Unit Test可以测试方法的输出是否符合预期,或者对没有输出的方法可以测试对对象状态造成的影响。
本例测试一个堆排序方法的正确性。
2.创建一个Unit Test工程,我们取名为GSUnitTest

3.创建完成之后,添加需要测试的类所在的工程的引用,本例为Sort

4.编写测试代码,把TestMethod的方法名改成UnitTest+要测试的方法名,改名不是必需的,但是可以使输出结果清楚的看到是在测试哪个方法。

5.运行Unit Test

6.得到结果如下:

是不是很简单?
如果项目开始的时候没有Unit Test,当进行了一段时间之后会发现原来写的代码完全是不可测的,原因是我们不能把要测试的方法独立出来测试。
并且如果我们的工程是多层结构的,那么不同类之间交互的接缝通常需要利用接口,基类等方法进行耦合隔离,然后注入stub对象或者mock一个对象来进行Unit Test的交互。
单元测试对于大型项目的结构优化是相当有益的。
另外在测试驱动开发中,Unit Test扮演这相当重要的角色,大致如下,可以看到Coding和Unit Testing是同时进行的,这也就为方法级的缺陷及早发现提供了方法。
而集成测试主要是测试模块之间的交互状况,UAT就是更多的表层UI测试了。所以UT,SIT,UAT分属于不同的测试层级,针对的缺陷对象是不同的。
下图取自这里。
RA( Requirement Analysis) &
PSD ( Productive Specification Design) UAT( User Acceptance Testing)
\ /
\ /
\ /
FSD(Functional Specification Design) SIT(System Integration Testing)
\ /
\ /
\ /
Construction(Coding) UT(Unit Tesing)
\ /
\ /
\ /
\ /
\ /
\ /
\/
作者:Andy Zeng
欢迎任何形式的转载,但请务必注明出处。
http://www.cnblogs.com/andyzeng/p/3773833.html
利用VisualStudio单元测试框架举一个简单的单元测试例子的更多相关文章
- 利用JSP编程技术实现一个简单的购物车程序
实验二 JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...
- 利用angular4和nodejs-express构建一个简单的网站(五)—用户的注册和登录-HttpClient
上一节简单介绍了一下利用angular构建的主路由模块,根据上一节的介绍,主页面加载时直接跳转到用户管理界面,下面就来介绍一下用户管理模块.启动应用后,初始界面应该是这样的: 用户管理模块(users ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-3/3(Unity3D开发之二十七)
使用Multiplayer Networking做一个简单的多人游戏例子-1/3 使用Multiplayer Networking做一个简单的多人游戏例子-2/3 使用Multiplayer Netw ...
- 一个简单的CORBA例子
因为对CORBA分析的需要,这里写一个简单的CORBA例子.从JDK1.2开始,JDK中集成了ORB的实现,本例子使用了JDK1.7,对于JDK1.2+应该都没有问题.这个例子实现一个简单的加减乘除的 ...
- 轻松创建nodejs服务器(1):一个简单nodejs服务器例子
这篇文章主要介绍了一个简单nodejs服务器例子,本文实现了一个简单的hello world例子,并展示如何运行这个服务器,需要的朋友可以参考下 我们先来实现一个简单的例子,hello world ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-2/3(Unity3D开发之二十六)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51007512 ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-1/3(Unity3D开发之二十五)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51006463 ...
- 一个简单的cmake例子
一个简单的cmake例子CMakeLists.txt,生成动态库文件,可以指定发布目录. 尚不支持: 1.交叉编译环境配置 2.添加依赖库 #在当前目录新建一个build目录,然后cd build ...
- Node.js基于Express框架搭建一个简单的注册登录Web功能
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...
随机推荐
- 一次ajax调用,发送了两次请求(一次为请求方法为option,一次为正常请求)
在项目了开发时遇见一个奇怪的现象,就是我在js里面发送一次ajax请求,在浏览器network那边查询到的却是发送了两次请求,第一次的Request Method参数为OPTIONS,第二次的Requ ...
- PowerDesgner的视图显示设置教程
一.简介 PowerDesgner是一款实用的数据库原型设计软件,但一些新手往往会觉得不好上手,应小伙伴需要,整理了一下PowerDesgner的视图显示设置教程: 首先,PowerDesgner的数 ...
- java代码生成xml 报错:HIERARCHY_REQUEST_ERR: 尝试在不允许的位置插入节点。
document.appendChild(controlElement)好像只能append一个根节点
- linux 常用命令-配置登陆方式
使用阿里云服务器,启动实例(ubuntu 7.4,密码登录)后,通过xshell登陆,但是发现xshell中密码登录是灰色禁用的,很惆怅啊,明明设置的就是密码登录,在xshell中找了一通设置发现并没 ...
- Java jdbc链接 mySQL 写的crud
1.JDBC(Java Data Base Connectivity java数据库连接)概念: 是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编 ...
- 项目Beta冲刺(团队)第六天
1.昨天的困难 可以获得教务处通知栏的15条文章数据了,但是在显示的时候出了问题. 私信聊天的交互还没研究清楚 2.今天解决的进度 成员 进度 陈家权 研究私信模块 赖晓连 研究问答模块 雷晶 研究服 ...
- Android笔记-3-EditText的属性介绍
[Android 基础]EditText的属性介绍 EditText继承TextView,所以EditText具有TextView的属性特点,下面主要介绍一些EditText的特有的输入法的属性特点 ...
- Alpha冲刺阶段博客汇总
第一篇(冲刺前安排):http://www.cnblogs.com/Aragaki-Yui/p/8893752.html 第二篇(冲刺第一天):http://www.cnblogs.com/Araga ...
- JavaScript下的new操作符做了什么?
可以参考知乎的一篇文章:https://zhuanlan.zhihu.com/p/23987456 参考网上其他人的文章,new发生了以下操作 参考MDN:https://developer.mozi ...
- Prism框架的优点
以我粗略的了解,prism/mvvm可以做到完全的逻辑和ui分离.即便是事件都是如此.这是主要优点.mvc是从本质上ui框架(当前大量半吊子把业务逻辑写在里面是不对的),mvvm包含客户端的业务逻辑. ...