首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络编程-> JSP教程
JUnit使用经验(1) -- 转自PMT杂志-JSP教程,资料/其它
作者:网友供稿 点击:146
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 

junit使用经验(1)


原作:andy schneider richard dallaway 等
编译:pmt 测试工作组

译者注:
很多测试人员都有过编写测试框架的经历,junit的出现避免了其中的大量重复劳动。但如同其
他的工具一样用得好和用得差的结果是截然不同的。我们编辑这样一个junit的系列希望能够帮助越
来越多的junit使用者用好junit。我们也希望读者们能够把自己的一些经验所得和大家分享。


经验一、不要在测试用例的构造函数中做初始化
当我们需要增加一个测试时,我们要书写一个自己的测试用例,比如sometest。如果你喜欢在sometest的
构造函数中做有关的初始化工作,这可不是个好习惯。如下例:
public class sometest extends testcase{
public sometest(string testname){
super(testname);
//初始化代码
}
}
一旦初始化代码产生异常,比如illegalstateexception,junit随之将产生一个assertionfailederror,
并显示类似下面的出错信息:
j u n i t . f r a m e w o r k . a s s e r t i o n f a i l e d e r r o r : c a n n o t i n s t a n t i a t e t e s t c a s e : t e s t 1 a t
j u n i t . f r a m e w o r k . a s s e r t . f a i l ( a s s e r t . j a v a : 1 4 3 ) a t
j u n i t . f r a m e w o r k . t e s t s u i t e $ 1 . r u n t e s t ( t e s t s u i t e . j a v a : 1 7 8 ) a t
j u n i t . f r a m e w o r k . t e s t c a s e . r u n b a r e ( t e s t c a s e . j a v a : 1 2 9 ) a t
j u n i t . f r a m e w o r k . t e s t r e s u l t $ 1 . p r o t e c t ( t e s t r e s u l t . j a v a : 1 0 0 ) a t
j u n i t . f r a m e w o r k . t e s t r e s u l t . r u n p r o t e c t e d ( t e s t r e s u l t . j a v a : 1 1 7 ) a t
j u n i t . f r a m e w o r k . t e s t r e s u l t . r u n ( t e s t r e s u l t . j a v a : 1 0 3 ) a t
j u n i t . f r a m e w o r k . t e s t c a s e . r u n ( t e s t c a s e . j a v a : 1 2 0 ) a t
j u n i t . f r a m e w o r k . t e s t s u i t e . r u n ( t e s t s u i t e . j a v a , c o m p i l e d c o d e ) a t
j u n i t . u i . t e s t r u n n e r $ 1 2 . r u n ( t e s t r u n n e r . j a v a : 4 2 9 )
这一大堆出错信息只会让人一头雾水,我们只知道junit无法实例化某个测试用例,到底出了什么问题,在
哪儿出错了呢?不知道!
那么好的做法是怎样呢?
答案是重载测试用例的setup()方法进行初始化。当setup()中的初始化代码产生异常时我们得到的
是类似下面的出错信息:
j a v a . l a n g . i l l e g a l s t a t e e x c e p t i o n : o o p s a t b p . d t c . s e t u p ( d t c . j a v a : 3 4 ) a t
j u n i t . f r a m e w o r k . t e s t c a s e . r u n b a r e ( t e s t c a s e . j a v a : 1 2 7 ) a t
j u n i t . f r a m e w o r k . t e s t r e s u l t $ 1 . p r o t e c t ( t e s t r e s u l t . j a v a : 1 0 0 ) a t
j u n i t . f r a m e w o r k . t e s t r e s u l t . r u n p r o t e c t e d ( t e s t r e s u l t . j a v a : 1 1 7 ) a t
j u n i t . f r a m e w o r k . t e s t r e s u l t . r u n ( t e s t r e s u l t . j a v a : 1 0 3 )
...
显然这要清楚得多我们一下子就可以知道是在dtc.java 的第34 行产生了illegalstateexception

经验二、不要假定测试用例中测试的执行次序
我们知道在一个junit 的测试用例类中可以包含多个测试,每个测试其实就是一个method。在下面的例子
中有两个不同的测试,尽管testdothisfirst()在位置上先于testdothissecond(),但我们不能就此假定
testdothisfirst()会先执行。
public class sometestcase extends testcase{
public sometestcase(string testname){
super(testname);
}
public void testdothisfirst(){
...
}
public void testdothissecond(){
}
}
由于junit 内部使用一个vector 来存储所有的test,因此在不同的操作系统和java 虚拟机上,test 的执行
次序是不可预测的。
好的习惯是保持测试之间的独立性,使得它们在任何次序下执行的结果都是相同的。如果真得需要某些测试
按照特定的次序执行,我们可以借助addtest 来实现。如下例:
public static testsuite(){
suite.addtest(new sometestcase(“testdothisfirst”;));
suite.addtest(new sometestcase(“testdothissecond”;));
return suite;
}
这样我们可以确保junit先执行testdothisfirst(),然后执行testdothissecond()。

经验三、测试要避免人工干预
如果某段测试代码需要人工干预,那至少有两个不良后果:一则不能被包括在自动测试中,比如夜间的回
归测试;二则不能被重复执行,例如数据删除的测试不能做完删除就万事大吉,比较好的做法是自动补上
删除掉的数据。经验二讲的是不同的测试要避免相关性,而经验三讲的其实就是测试要避免自相关。

文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·利用 Java Web Start发布你用java程序-JSP教程,Java技巧及代码
·用正则表达式得到网页上的链接-.NET教程,评论及其它
·MSMQ,Enterprise Service, DotNet Remoting,Web Service 的优缺点-.NET教程,Web Service开发
·用vb编一个计算器,需要用到数组,看看下面的代码,欢迎来找碴!-.NET教程,VB.Net语言
·jsp页面中的下载功能实现-JSP教程,Jsp/Servlet
·利用Java 创建和读取Excel文档-JSP教程,Java技巧及代码
·JSP语法(8)——<jsp:forward>-JSP教程,Jsp/Servlet
·Hibernate 配置!-JSP教程,资料/其它
·java、J2EE基础问题汇总-JSP教程,Java技巧及代码
·Java手机程序设计入门 电子书开放下载(转自CSDN)-JSP教程,J2ME开发
最新文章
·photoshop制作重彩风格非主流照片效果_photoshop教程
·google补充材料没消失,内链优化很重要_seo网站优化
·个人网站建设到底怎样赚钱_网赚技巧
·英文垃圾站全功略ip日100月赚50刀_网赚技巧
·清客讲网赚思路_网赚技巧
·windear与渡虎谷密谋_站长访谈
·口碑网ceo李治国专访:独特的平衡之道_站长访谈
·密密麻麻圈网邵晨:我从“互动”中赚钱_站长访谈
·蔡文胜:站长的乐趣是享受建站的过程_站长访谈
·“鹰”之路—访著名linux内核程序员大鹰_站长访谈
相关主题
  • JUnit源码分析(三)-JSP教程,Java技巧及代码
  • JUnit源码分析(二)-JSP教程,Java技巧及代码
  • JUnit测试程序-JSP教程,Java技巧及代码
  • JUnit和单元测试入门简介-JSP教程,Java技巧及代码
  • JUNIT测试通过的HelloWorld-JSP教程,资料/其它
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭