欢迎来到天天文库
浏览记录
ID:30952255
大小:105.50 KB
页数:8页
时间:2019-01-04
《追求代码质量(10)-探究xmlunit-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、追求代码质虽(10):探究XMLUnit-编程开发技术追求代码质量(10):探究XMLUnit原文出处:IBM中国在软件开发周期中,需要不时地验证XML文档的结构或内容。不管构建的是何种应用程序,测试XML文档都貝有一定的挑战性,尤其是在没有相关工具的情况下就更是如此。木月,我将首先向您说明为何刁、能?使用?String?比较來验证XML文档的结构和内容。之后,我会介绍XMLUnit,-个市Java开发人员创建并可服务于Java开发人员的XML验证工具,向您展示如何使用它來验证XML文档。古典的String比较首先,假设您已经构建
2、了一个应用程序,该应用程序可以输出代表对象依赖性报告的XML文档。对于给定的类和对应的过滤器的集合,会生成一个报告来输出类和类的依赖项(想象一下导入)。清单1显示了用于给定类列表(com.acme.web.Widget?和?com.acme.web.Account)的报告,过滤器被设为忽略外部类,比如java.lang.String:清单1.一个示例依赖性XML报告3、a4、orgz,/>5、清单1很明显是由应用程序生成的;因而,第一层测试就是验证应用程序是否真能生成一个文档。一旦验证了这一点,就可以继续测试指定文档的其他三个方面:•结构•内容•指泄内容可以通过单独使用JUnit利用?String?比较处理上述前两个方而,如清单2所示:清单2.硬性验证XMLpublicclassXMLReportTestextendsTestCase{privateFilter[]getFilters6、(){F订ter[]fltrs二newF订ter[2];fltrs[0]=newRegexPackageFi1ter(z,java7、orgzz);fltrs[1]=newSimplePackageFi11er(et.〃);returnfltrs;}privateDependency[]getDependencies(){Dependency[]deps二newDependency[2];deps[0]=newDcpendcncyCcom.acme,resource.Configuration");deps[l]=newDepend8、ency(〃com.acme.xml.Document'7);returndeps;}publicvoidtcstToXML(){Datenow=newDate();BatchDependencyXMLReportreport二newBatchDependencyXMLReport(now,this.getFi1ters());report.addTargctAndDcpcndcncics(zzcom.acme.web.Widget,z,this.getDependencies());report.addTargetAndDepe9、ndencies(z,com.acme.web.Account",this.getDependencies());Stringvalid=z,"+iltersAppliedXFilterpattern=/zjava10、org/z/>〃+Z,z,+"11、acme,resource.Configuration〃/>〃+"〈Dcpcndcncyname=z,com.acme.xml.Documcnt"/>z,+"〈Classname=/zcom・acme・web・Account
3、a
4、orgz,/>
5、清单1很明显是由应用程序生成的;因而,第一层测试就是验证应用程序是否真能生成一个文档。一旦验证了这一点,就可以继续测试指定文档的其他三个方面:•结构•内容•指泄内容可以通过单独使用JUnit利用?String?比较处理上述前两个方而,如清单2所示:清单2.硬性验证XMLpublicclassXMLReportTestextendsTestCase{privateFilter[]getFilters
6、(){F订ter[]fltrs二newF订ter[2];fltrs[0]=newRegexPackageFi1ter(z,java
7、orgzz);fltrs[1]=newSimplePackageFi11er(et.〃);returnfltrs;}privateDependency[]getDependencies(){Dependency[]deps二newDependency[2];deps[0]=newDcpendcncyCcom.acme,resource.Configuration");deps[l]=newDepend
8、ency(〃com.acme.xml.Document'7);returndeps;}publicvoidtcstToXML(){Datenow=newDate();BatchDependencyXMLReportreport二newBatchDependencyXMLReport(now,this.getFi1ters());report.addTargctAndDcpcndcncics(zzcom.acme.web.Widget,z,this.getDependencies());report.addTargetAndDepe
9、ndencies(z,com.acme.web.Account",this.getDependencies());Stringvalid=z,"+iltersAppliedXFilterpattern=/zjava
10、org/z/>〃+Z,z,+"11、acme,resource.Configuration〃/>〃+"〈Dcpcndcncyname=z,com.acme.xml.Documcnt"/>z,+"〈Classname=/zcom・acme・web・Account
11、acme,resource.Configuration〃/>〃+"〈Dcpcndcncyname=z,com.acme.xml.Documcnt"/>z,+"〈Classname=/zcom・acme・web・Account
此文档下载收益归作者所有