首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>软件工程>软件测试>谈谈单元测试假成功和假失败的避免方法
谈谈单元测试假成功和假失败的避免方法
来源: 发布时间:2008-03-25 发布人: 浏览: 人次   字体: [ ]  
1 基本信息

摘要:描述了单元测试要避免的几个问题,并给出几个最佳实践建议。

2 假成功的单元测试

1. 问题描述:

在testXXX方法中,看到有这样的测试代码:3. 解决方法:

public void testInvoke(){
try{

assertEquals(a,b);
}
catch(Exception e){

}
}

2. 问题分析:

如果运行过程中没有出现异常,整个流程不会有任何问题,JUnit也认为整个测试正常通过。

但是一旦try中的某段代码运行出错,我们会发现由于在assertEquals被调用之前就已经跳到catch中,所以assertEquals并没有被执行,而catch及之后的代码中并没有相应的assertEquals语句,因此JUnit认为这个testXXX方法对应的测试用例正常通过,我们被结果欺骗了。

将assertEquals语句移道try…catch之外,变成如下的代码样式:

public void testInvoke(){
Object a;
Object b;
try{

// assertEquals(a,b);
}
catch(Exception e){

}
assertEquals(a,b);
}

3 假失败的单元测试

有的时候被测试方法在申明的时候有throws语句,那么单元测试代码应该小心处理这个问题.

如果测试方法直接throws被测试方法所扔出的异常,则在被测试方法扔出这个异常的时候,该单元测试被认为是失败; 但是作为被测试方法来讲,扔出该异常可能是正常的处理逻辑,而不能被认定是代码有错误. 称这种情况为"假失败"的单元测试.

4 最佳实践

单元测试最好不要有try/catch这些内容,这些内容应该是正式代码中处理的。

单元测试只要在故意测试异常时才应该用到try/catch,如需要在某个环境下是否抛出某个异常;而其它情况try/catch应该避免使用。

相 关 文 章   发布商链接
·软件测试过程模型图介绍:V模型 W模...
·什么是单元测试?如何编写单元测试用...
·什么是黑盒测试及其测试常用的方法介...
·谈谈敏捷开发中的7种测试类型
·敏捷开发中的7种类型测试
·警惕一些容易被测试人员忽略的软件缺...
·举例谈谈项目测试工作指导性方案的思...
·测试过程的几个注意点助你提高测试的...
·保证测试的完备性的八条经验
·软件测试中如何做好bug统计的几点分...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·谈谈敏捷开发中的7种测试类型...
·什么是黑盒测试及其测试常用...
·什么是单元测试?如何编写单元
·软件测试过程模型图介绍:V模
·详解单元测试中的问题和解决...
·如何使用NUnit进行并发测试?
·为什么需要软件测试及其软件...
·.net测试覆盖率工具:clover....
·软件测试过程中,测试数据如何
·几款开放源代码的软件测试工...
·测试人员应该如何报bug?
热 门 文 章
·软件测试过程模型图介绍:V模...
·什么是单元测试?如何编写单元...
·为什么需要软件测试及其软件...
·什么是黑盒测试及其测试常用...
·如何使用NUnit进行并发测试?
·软件测试过程中,测试数据如何...
·.net测试覆盖率工具:clover....
·软件测试缺陷报告实用写作技...
·测试人员应该如何报bug?
·几款开放源代码的软件测试工...
·详解单元测试中的问题和解决...
·软件测试中如何做好bug统计的...
·软件测试中常用的一些技巧与...
·测试过程的几个注意点助你提...
·保证测试的完备性的八条经验
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .