51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 17620|回复: 16
打印 上一主题 下一主题

Junit的魅力(转)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-10-12 14:35:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Junit的魅力
gzeric 于 2004年 09月06日 发表

真正接触Junit,也就是大概3个月前,上头给了个新的头衔我--主持团队里的测试工作,第一个目标就是完善unit testing的制度。Junit几乎是java开发中unit testing的唯一选择,无论是收费的Jbuilder,还是Share的IntelliJ IDEA,甚至是Free的Eclipse都选择集成了Junit。到底是什么东西使Junit散发着如此大的魅力呢?

Unit testing就像是整个Testing工程中的cell,所有测试应该都是base on unit testing的,java的unit testing主要针对的是每个java class的测试。

Junit对每个unit的testing都定义了一个TestCase,这个case理论上是应该针对某一个class,用户可以应自身的需要定义一系列的fixtures,然后根据实际情况编写test method,然后对test result做出相应的assertion。这就是一个比较完整的Junit TestCase了。

Unit testing有一个不成文的方程式,objective test + replicable test = simple test programme,可以看出objective和replicable是unit testing的最关心的两样东西。objective意味着每个TestCase都应该是有目的的,并非人云亦云的“每个class都应该进行unit testing”;replicable则意味着TestCase应该是可重用的。Junit作为一个unit testing的framework,十分好的尊重了这两条原则,很大程度上都由编写TestCase的人员来控制objective特性,而且replicable的方法和API也很大程度地提高了开发人员在编写TestCase上的效率。只要开发人员真正认识到了unit testing的必要性,他就一定会喜欢junit带来的好处,并非单纯的跟风的学习和使用。要知道Junit是能够真正提高开发效率和代码质量的。

在Junit的扩展上,业内有几个相对出名的项目,但我这里想说说的是Cactus和Httpunit。Cactus是针对容器内的一种junit扩展,它把TestCase扩展为JSP、Sevlet和Filter三种形式,然后通过一些特殊的方法(如beginXXX等)来定义一个测试过程,来模拟一系列交互的容器内测试;Httpunit则是定义了一个WebConversation,然后针对web形式的response和request来模拟browser的所有动作以及结果,同样的Httpunit也可以模拟容器内的测试,如servlet的。相比之下,我个人认为Httpunit更加从根本上解决了web形式的测试问题,可以说是更加原始的测试,通过request和response的形式来模拟整个交互过程,而且还提供了对link的测试,应该来说更加容易让用户真切体会到它的优势所在。反倒是Cactus在测试前就必须通过一大轮配置,更加令我苦恼的是用Cactus很难去模拟一个完整的流程,只能够通过多个test method来不断测试各个servlet method,然后只能证明这些methods没有问题,很难说明这些methods串起来后不出问题。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2004-10-12 18:00:23 | 只看该作者
不错,顶
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2005-6-3 17:01:06 | 只看该作者
顶啊顶                          。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2005-11-13 17:07:01 | 只看该作者
好呀,大家顶了!!!
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-3-13 21:56:39 | 只看该作者
呵呵,好东西,近期正在把junit整合进我们的架构
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-3-16 16:47:54 | 只看该作者
谢谢了!!!支持一下!!!!
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2006-3-16 17:39:39 | 只看该作者
谢谢!顶
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2006-4-24 07:45:36 | 只看该作者
谢谢了
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2006-5-9 11:36:50 | 只看该作者
THANK YOU!
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2006-8-7 15:43:25 | 只看该作者

好文章

好文章,但楼主说:“Junit几乎是java开发中unit testing的唯一选择”不太对吧,JUnit是很有魅力,但JUnit推出来也很有几年,它的缔造者Kent Beck已经又推出一个更为强大的JAVA单元测试工具——Agitator,一个完全自动化的单元测试工具,这是JAVA的单元测试工具的第三代,详情请参照:
www.madetek.com
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2006-9-12 17:15:14 | 只看该作者

多多发表意见,才长见识
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2006-11-3 17:38:01 | 只看该作者
sdlkfj2 不错,我正在学习使用junit4.1
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2006-11-10 10:25:37 | 只看该作者
不错,我也正在学junit4.1.并准备为一个项目做单元测试,可以交流吗,gaoyanfang1
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2006-11-10 10:26:58 | 只看该作者
看到帖子,回复 
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2008-3-13 17:40:25 | 只看该作者
原帖由 wanghong 于 2006-8-7 15:43 发表
好文章,但楼主说:“Junit几乎是java开发中unit testing的唯一选择”不太对吧,JUnit是很有魅力,但JUnit推出来也很有几年,它的缔造者Kent Beck已经又推出一个更为强大的JAVA单元测试工具——Agitator,一个完全自 ...



做广告的吧
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2008-12-19 16:10:04 | 只看该作者
好东东帮顶下
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2011-9-2 17:45:16 | 只看该作者
好东西 也要顶一下!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-16 21:10 , Processed in 0.077845 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表