用模拟对象和aop来单位试验struts的应用 外文翻译稿.doc

约17页DOC格式手机打开展开

用模拟对象和aop来单位试验struts的应用 外文翻译稿,用模拟对象和aop来单位试验struts的应用aop如何补足oop来缩小整合间隙作者walter jia, javaworld.com, 11/09/06试验驱动开发减少了发展努力的同时,提高了软件质量。作为一个整体试验策略的基础, 单位试验必须是全面的,设置简单,执行快速。但是,依赖于执行环境和测试组外的代码使我们达...
编号:16-207900大小:172.50K
分类: 论文>外文翻译

内容介绍

此文档由会员 wanli1988go 发布

用模拟对象和AOP来单位试验Struts的应用
AOP如何补足OOP来缩小整合间隙
作者Walter Jia, JavaWorld.com, 11/09/06
试验驱动开发减少了发展努力的同时,提高了软件质量。作为一个整体试验策略的基础, 单位试验必须是全面的,设置简单,执行快速。但是,依赖于执行环境和测试组外的代码使我们达到上述目标的能力复杂了。把应用程序部署在一个容器里显然放慢了代码和试验周期。 此外,与其他组合作的要求通常会导致更加复杂的试验设置和较慢的测试。
整合两个流行测试框架,StrutsTestCase 和 EasyMock,和单元试验Struts的应用会导致较简单的试验设置和较快速的试验。 但是,这两个框架留下缺口,阻止了理想的综合。 在这篇文章中,我检查了这个问题的面向对象的解决办法和面向方面的解决办法。通过简化看似难以解决的问题,比较也显示出面向方面的程序设计(AOP)是如何补足对象编程(OOP)的。
整合需要
重大的Struts的应用展示了执行环境和种类依赖,因为Struts的行为是在Servlet的容器里完成的,典型地需要其他组来处理要求。 模拟对象测试方法,有助于消除不必要的附庸。Strutstestcase的试验框架给一个模拟的Servlet容器的执行提供了Mockstrutstestcase课堂,延伸了基础 JUnit的试验用例。它有利于科集装箱检验,加快单位检验周期。Easymock,另一个测试框架,很容易地模拟动态的协作组。模拟以简单执行代替真正的组,加上逻辑论证来支持单位试验。
显然,把两种框架结合起来是有利的,以便于Struts的应用能够真正地独立地进行试验。理论上,你要根据下列步骤实施这个单位试验:
1. 建立MockStrutsTestCase,以便于模拟Servlet的容器;
2. 模拟组,这一行为取决于使用Easymock;
Unit test Struts applications with mock objects and AOP
How AOP complements OOP to bridge the integration gap
By Walter Jia, JavaWorld.com, 11/09/06
Test-driven development improves software quality while reducing development efforts. As the foundation of an overall test strategy, unit tests must be comprehensive, easy to set up, and quick to execute. However, the dependency on the execution environment and on code outside the class under test complicates our ability to achieve these goals. Deploying the application in a container significantly slows down the code-and-test cycle. Furthermore, the need to collaborate with other classes usually leads to more complex test setups and slower test runs.
Integrating two popular test frameworks, StrutsTestCase and EasyMock, to unit-test Struts applications leads to easier test setups and faster test runs. However, these two frameworks leave a gap that prevents an ideal integration. In this article, I examine both an object-oriented solution and an aspect-oriented solution to this problem. The comparison also demonstrates how aspect-oriented programming (AOP) complements object-oriented programming (OOP) by simplifying the solution to a seemingly difficult problem.