追求代码质量(7)-可重复的系统测试-java开发java经验技巧

追求代码质量(7)-可重复的系统测试-java开发java经验技巧

ID:30888373

大小:130.50 KB

页数:10页

时间:2019-01-04

追求代码质量(7)-可重复的系统测试-java开发java经验技巧_第1页
追求代码质量(7)-可重复的系统测试-java开发java经验技巧_第2页
追求代码质量(7)-可重复的系统测试-java开发java经验技巧_第3页
追求代码质量(7)-可重复的系统测试-java开发java经验技巧_第4页
追求代码质量(7)-可重复的系统测试-java开发java经验技巧_第5页
资源描述:

《追求代码质量(7)-可重复的系统测试-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、追求代码质量(7):可重复的系统测试-编程开发技术追求代码质量(7):可重复的系统测试原文出处:IBM中国在本质上,像JUnit和TestNG—样的测试框架方便了可重复性测试的创建。由于这些框架利用了简单Boolean逻辑(以Hassert?方法的形式)的可靠性,这使得无人为干预而运行测试成为可能。事实上,自动化是测试框架的主耍优点之一——我能够编写一个用于断言具休行为的相当复杂的测试,口一旦这些行为有所改变,框架就会报告一个人人都能明白的错误。利用成熟的测试框架会带來框蝦述重复性的优点,这是显而易见的。憧逻辑你可重复性却取决于您。例如,考虑创建用于验证Web应用程序的可重复测试的情况,一些

2、JUnit扩展框架(如JWebUnit和HttpUnit)在协助自动化的Web测试方面非常好用。但是,使测试的2plumbing?也重复则是开发人员的任务,而这在部署Web应用程序资源吋很难进行。实际的JWebUnit测试的构造过程相当简单,如清单1所示:清单1.一个简单的JWebUnit测试packagetest.come.acme,widget.Web;importnet.sourceforge,jwebunit.WebTester;importjunit.framework.TestCase;publicclassWidgetCreationTestextendsTestCase{pr

3、ivateWebTestertester;protectedvoidsetUp()throwsException{this,tester=newWebTester();this,tester.getTestContext().setBaseUrl(z,http://localhost:8080/widget/z,);}publicvoidtestWidgetCreation(){this,tester.beginAt(,z/CreateWidget.;this.tester.setFormElement("widget—id〃,〃893一44〃);this,tester.setFormEle

4、ment(〃parl-〃rl45-3〃);this,tester.submit();this,tester.assertTextPresent(/z893-44/z);this,tester.assertTextPresent(^successfullycreated./z);这个测试与一个Web应用程序通信,并试图创建一个基于该交互的小部件。该测试随后校验此部件是否被成功创建。读过本系列之前部分的读者们也许会注意到该测试的一个微妙的可重复性问题。您注意到了吗?如果这个测试用例超综运行两次会怎样呢?由这个小部件实例(即,widget-id)的验证方而可以判断出,可以安全地做出这样的假设,即此

5、应用程序中的数据库约束很可能会阻止创建一个己经存在的额外的小部件。由于缺少了一个在运行另一个测试前删除此测试用例的口标小部件的过程,如果再连续运行两次,这个测试用例非常有可能会失败。幸运的是,如前面文章中所探讨的那样,有一个有助于数据库-依赖性(database-dependent)测试用例可重复性的机制即DbUnito使用DbUnit改进?清单1?中的测试用例來使用DbUnit是非常简单的。DbUnit只需要一些插入数据库的数据和一个相应的数据库连接,如清单2所示:清单2.用DbUnit进行的数据库-依赖性测试packagetest.come.acme,widget.Web;importj

6、ava.io.File;importjava.io.IOExccption;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importorg.dbunit.database.DatabascConnection;importorg.dbunit.database.IDatabaseConnection;importorg.dbunit.dataset.DataSetException;importorg.dbunit.dataset.TDataSet;importorg.d

7、bunit.dataset,xml.FlatXmlDataSet;importorg.dbunit.operation.DatabaseOpcration;importnet.sourceforge,jwebunit.WebTester;importjunit.framework.TestCase;publicclassRcpcatablcWidgctCreationTcstextendsTestCase{p

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。