Cactus工作原理

系统 1697 0

Cactus 是Jakarta的子项目之一,是对JUnit的一个扩展。Catus是Java EE容器内测试的事实标准。

Cactus是针对集成单元测试的开源框架。可以在容器内对JAVA EE服务器端组件(如JSP,Servlet,EJB,数据库等)进行细粒度的单元测试。


Cactus测试的生命周期

Cactus测试会创建两个TestCase,一个在客户端,另一个在服务器端。两个TestCase分别由各自的TestRunner执行。还有创建一个proxy redirector对象,这个对象实现了Cactus的逻辑。

Cactus测试分为在客户端JVM和服务器端JVM(也就是在容器内)两个方面的测试。

第一步 - 执行begin XXX
      这一步是在 客户端 中运行。
      当存在begin XXX 方法时,将自动执行。这个方法的作用是准备提供给服务端redirector的信息。传递的信息是HTTP相关参数,比如HTTP报文头部,cookie等等。也就是设置这个测试需要的一些参数。
      这是在客户端TestCase创建后调用。

第二步 - 打开redirector连接
      这一步就是服务器和客户端进行连接。在第一步中准备的一些参数在这一步传递给服务器端的redirector。当然这是在Cactus的redirector对象创建后执行。

第三步 - 创建服务器端的TestCase实例
      这一步是在 服务器端 执行。
      redirector对象会创建一个服务器端的TestCase实例。获得容器对象后通过设置类变量赋给TestCase实例。

第四步 - 在服务器端进行测试
      在服务器端启动测试,调用JUnit的一系列方法(setUp,test XXX ,tearDown等),并把测试结果保存到一个ServletConfig servlet对象中。

第五步 - 执行end XXX  
      这一步是在客户端在获得来自redirector的响应后执行。
      执行这个方法,作用是对比测试结果是否与预期相同,也就是对获得的测试结果进行断言。

第六步 - 收集测试结果
      这一步就是把服务端的测试结果返回到客户端。
      在Cactus生命周期的最后,总结客户端的测试所得的返回信息(第五步)和服务端中执行的结果(第四步),运行TestRunner把测试结果显示出来。到此Cactus完成任务。

   以上的Cactus的生命周期,测试驱动开发过程中不必关注,其中的复杂性被封装在Cactus框架中。对于开发者只需扩展Cactus中的 TestCase(如JSPTestCase,ServletTestCase等等),在其中编写初始化方法设置参数,测试方法即可。

Cactus工作原理


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论