利用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
最新文章
- 异步编程系列06章 以Task为基础的异步模式(TAP)
- VSFTP安装
- C#中的yield return与Unity中的Coroutine(协程)(下)
- Java for LeetCode 039 Combination Sum
- android中控件公用产生的冲突的解决办法
- mysql允许远程IP访问
- java类集框架(ArrayList,LinkedList,Vector区别)
- Web API 路由 [二] Attribute Routing
- [Git]2018-10 解决git cmd中文乱码问题
- n&;m位运算
- NIO 概述 与 通信实例
- JS 变量提升与函数提升
- php 按照中文字母名字排序,并把相应的头像显示出来
- <;airsim文档学习>; Street View Image, Pose, and 3D Cities Dataset
- vue中$set的用法
- Django中Session
- 【struts2】名为dispatcher的ResultType
- Android Progurad 代码混淆
- Oracle HA 之 SERVICE和DRM实战
- 将select的默认小三角替换成别的图片,且实现点击图片出现下拉框选择option
热门文章
- Beta发布 _thunder_文案+美工展示
- Task 6.4 冲刺Two之站立会议6
- Codeforces Round #157 (Div. 1) B. Little Elephant and Elections 数位dp+搜索
- windows下的C++ socket服务器(4)
- 关于javascript异步编程的理解
- week3b:个人博客作业
- 弹出提示框的方式——java
- 蜗牛慢慢爬 LeetCode 11. Container With Most Water [Difficulty: Medium]
- 10.13课堂Scrum站立会议
- PAT 1042 字符统计