运用类的思想和Java的反射(Reflect)技术,构建出一个灵活、合理的系统(2)

运用类的思想和Java的反射(Reflect)技术,构建出一个灵活、合理的系统(2)

——写给Java初学者

第二部分:对系统进行分析

一、             系统配置方式的确定

对于一个希望做到灵活的系统,配置文件是不可少的(大家都听说过Struts吧,知道有个Struts-config.Xml文件)。在这里,我也采用XML作为我们的自动化测试系统的配置文件。并且,我选择DOM API作为XML配置文件的解析工具。

同时,给各位XML爱好者提个醒。如果你在工作或者学习的过程中,需要设计XML文件格式时。建议你先从DTD/SCHEMA开始设计,设计好DTD/SCHEMA后,再根据它们来编写XML文件。不要一开始就直接写XML文件,这样不好。至少我认为不符合XP风格,而且不容易验证你的XML是否正确。

另外,对于DTD/SCHEMAXML的编写,我也建议大家使用一些专业的工具。不要简单的使用记事本或UltraEditEditPlus

虽然它们也支持XML语法高亮显示,看起来很清晰,查找功能也很强大。但是,我还是推荐大家使用专业的XML编辑开发工具,要做到物尽其职!我用的是XMLSpy,它能对你编写的XML文件是否符合DTD/SCHEMA作检查!

二、             测试工具的选择:

在当今这个很讲究XP(极限编程)的年代,似乎处处流行着Test First!我也不例外。

既然本文的主要目标是测试,那么,对测试工具的选择,就必然是一个主要的目标,在这里我选择的是:HttpUnit

对于测试界的元老们,肯定会很清楚我为什么会选择HttpUnit。也许,他们会选择更好的测试工具(希望软件测试界的元老们也介绍他们的思想)。

在这里,对于那些Java初学者、以及想了解XP思想的,我就简单介绍我选择HttpUnit的理由。

可能,在JavaXP的世界里,JUnit的名气是很风靡的。但是,JUnit对我们这个设想的自动化测试系统并不是很适合;因为我觉得它主要是对类的功能进行单元测试,而我目前进行测试的是一个基于Web的测试框架。如果,我采用JUnit作为测试工具,我必须对它作进一步的封装(请注意,在这里,我们第一次出现了封装!封装的思想,也将贯穿于本文的!)。

也许,有的朋友会说,StrutsTestCase不也可以对Web进行测试吗?而且,他已经对JUnit作了封装,为什么不用它呢。

不用它的原因,是:它主要是对Struts作测试的。

我一直这么认为:一个对象(在Java里,我们可以称呼它为类:Class),应该各司其职,不要越庖代厨;

这也体现了软件工程的高内聚、低耦合的思想。因此,我选择HttpUnit作为我的主要测试工具。它主要是对Http做功能性测试,并且也对JUnit作了封装。关于HttpUnit的具体用法,也不在本文讨论的范围之内,请大家参考相关资料。我在这里只是对测试依赖工具作一下选择分析,希望大家能从一开始就建立起“先分析,后设计,再编码”的良好习惯。

运用类的思想和Java的反射(Reflect)技术,构建出一个灵活、合理的系统(1)http://www.csdn.net/develop/Read_Article.asp?Id=23408
运用类的思想和Java的反射(Reflect)技术,构建出一个灵活、合理的系统(2)http://www.csdn.net/develop/Read_Article.asp?Id=23409
运用类的思想和Java的反射(Reflect)技术,构建出一个灵活、合理的系统(3)http://www.csdn.net/develop/Read_Article.asp?Id=23410
运用类的思想和Java的反射(Reflect)技术,构建出一个灵活、合理的系统(4)http://www.csdn.net/develop/Read_Article.asp?Id=23411
运用类的思想和Java的反射(Reflect)技术,构建出一个灵活、合理的系统(5)http://www.csdn.net/develop/Read_Article.asp?Id=23412
运用类的思想和Java的反射(Reflect)技术,构建出一个灵活、合理的系统(6)http://www.csdn.net/develop/Read_Article.asp?Id=23413

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值