Unit Test_.NET_编程开发_程序员俱乐部
中国优秀的程序员网站
程序员频道
CXYCLUB技术
地图
最新资讯
|
百度新闻
|
GOOGLE地图
|
RSS订阅
|
更多
职场话题
生活休闲
恋爱交友
程序人生
学习进修
职业发展
项目管理
求职面试
程序员创业
JAVA
.NET
C/C++
Ruby
Delphi
JavaScript
PHP
ASP
JSP
HTML
XML
移动开发
开发工具
其他
编程开发
数据库
操作系统
新闻资讯
互联网
非技术区
非技术区
生活休闲
恋爱交友
职业发展
求职面试
程序人生
移动开发
开发工具
DB2
MySql
Sybase
开发
JAVA
.NET
PHP
C/C++
数据库
SQL Server
Oracle
互联网
运营
推广
营销
SEO
系统
Linux
Unix
Windows
资讯
动态
产品
人物
创业
职场
学习
管理
热搜:
高手
大型网站
天猫
回溯
循环
class
instance
Win8
美图秀秀
摄像头
二维码
应用程序池
IIS7
controller
二进制
高手
大型网站
天猫
回溯
循环
class
instance
Win8
美图秀秀
摄像头
更多>>
您所在的位置:
程序员俱乐部
>
编程开发
>
.NET
> Unit Test
Unit Test
2014/9/10 23:11:44 哨兵
程序员俱乐部
我要评论(
0
)
摘要:
单元测试的特性:自动的,可重复的容易实现一旦写好,将来都可使用任何人都可以运行可以快速运行单击一个按钮就可以运行单元测试与集成测试的区别:集成测试运行多个集成到一起的代码单元,用来确认软件中应该出现的一个或多个预期结果,而单元测试通常只鼓励的运行和测试某个单元测试方法命名规则:[被测方法]_[场景]_[预期行为],一个测试方法中如果有多个断言,前面的断言失败了就会抛异常,导致后面的无法运行.另外应遵循的一个原则是一个测试类中最多只有一个Mock对象,其余为Stub对象Stub对象
标签:
单元测试的特性:
自动的,可重复的
容易实现
一旦写好,将来都可使用
任何人都可以运行
可以快速运行
单击一个按钮就可以运行
单元测试与集成测试的区别:集成测试运行多个集成到一起的代码单元,用来确认软件中应该出现的一个或多个预期结果,而单元测试通常只鼓励的运行和测试某个单元
测试方法命名规则:[被测方法]_[场景]_[预期行为],一个测试方法中如果有多个断言,前面的断言失败了就会抛
异常
,导致后面的无法运行.另外应遵循的一个原则是一个测试类中
最多
只有一个Mock对象,其余为Stub对象
Stub对象:对代码单元中现有依赖项的一个替代品,可人为控制,通过使用Stub对象无需涉及依赖项即可对代码进行测试,因为Stub对象可以人为控制其方法的执行结果,达到解除依赖的目的.
为了增强可测性,可以重构被测试类的设计
抽取
接口
,以允许替换底层实现,这样就可以定义一个Stub对象实现接口,引入到测试类中,解除对具体类的依赖进行测试。引入的方式有多种:
构造函数
,属性赋值或者在被测试函数中直接定义Stub对象等
Stub与Mock的区别:
Stub对象不会使测试失败,Mock对象可以使测试失败
使用Stub对象时Assert断言都是针对被测试类的,使用Mock对象则是对模拟对象进行断言
隔离框架(isolation framework):是可以方便的进行新建Mock对象和Stub对象的一组可编程Api让
程序员
不用为了测试或模拟对象之间的交互而编写重复的代码
预期: 表示对被调用函数的预期
不需要对私有方法进行单元测试(在满足第三条的情况下),理由如下:
私有的方法一定是供暴露出来的方法调用的,测试了暴露方法,也就同时测试了私有方法,如果做不到,是否代码重构有问题?
单元测试的目的是为了保证你修改复用代码时不会影响到所有引用这段代码的程序 ,private方法本来就不能被别的类引用,所以不需要用单元测试来保证其正确性。
然不测试,但是是建立在以下原则上的,你不应该有任
何方
法是从一开始设计出来就是private的,因为你的每段程序都应该在单元测试的驱动之下产生,而测试是不可能驱动出来一个private方法的。那么private方法从哪里来?只能从重构而来。所以private方法是不需要测试的,因为它是重构的产物,而重构是不改变程序可观察之行为的。既然行为不改变,测试自然也不需要有任何改变,所以不需要针对private方法建立任何新的测试
上一篇:
Entity Framework实现事务回滚
下一篇: 没有下一篇了!
相关文章
查看所有评论(
0
)
我要评论
发表评论
用户名:
匿名
最新文章
Unit Te..
Entity ..
·
Unit Test
·
Entity Framework实现事务
·
C#inSSIDer强大的wifi无线热
·
C# 编写的串口通信程序
·
The Amazing Progress
·
建议1:正确操作字符串
·
建议2:使用默认转型方法
·
泛型Dictionary的用法详解
·
C#常见算法题目(面试准备)
·
我的菜单在母版页,如何更改菜单点击后的效
·
做技术到底可以做到哪种地步-技术为什么越
·
C# WinForm捕获未处理的异常
·
ASP.NET中使用TreeView显示
·
使用Microsoft Unity进行日
·
wpf 客户端【JDAgent桌面助手】
最新标签
高手
大型网站
天猫
回溯
循环
class
instance
Win8
美图秀秀
摄像头
今日热点
·
[转]超时时间已到。超时时间已到,但是尚
·
错误:没有注册类别 (异常来自 HRES
·
Spring.net + Fluorin
·
c# 反射详解
·
MVC文件上传05-使用客户端jQuer
·
.NET SOCKET通信编程
·
90分钟实现一门编程语言——极简解释器教
·
Microsoft Visual Stu
·
c#写windows服务
·
asp.net发送邮件
推荐文章
【共享】流程图..
C# Stri..
·
java.net.Conne
·
错误:没有注册类别 (异常来自 HRES
·
iis7.0官方下载 IIS 7.0(微
·
Devpress.XtraGrid.Gr
·
.NET 开发淘宝API代码实例
·
win7 64位 安装ORACLE10g
·
C#开发winform程序的界面框架
·
关于获得Repeater中某行数据项的某
·
expression blend 3破解
·
.net(C#)从html中提取中文字_
·
關於PB12.NET
·
读取csv时中文乱码问题
·
gridview导出数据至Excel o
·
c# WinForm开发 DataGri
·
C# ComboBox控件使用
English
|
关于我们
|
诚聘英才
|
联系我们
|
网站大事
|
友情链接
|
意见反馈
|
网站地图
Powered by
程序员俱乐部
程序提供: HugoCMS 2.0
网站备案:苏ICP备11048748号-1