`
xnnyygn
  • 浏览: 44108 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

使用cactus测试ssh应用(1)

阅读更多
最近拿到了《Junit In Action》,书中提到了Cactus测试容器的方法。由于自己在创建ssh应用,一直找不到好的办法来测试,所以打算使用cactus进行测试。

测试的过程是痛苦的……

首先按照书上的例子进行测试。因为是我的应用是struts为前端的,所以ServletTestCase完全是碰运气。不出所料,失败。然后习惯性的去网上找资料。

首先找到比较适合我的是
http://blog.csdn.net/jingmin/archive/2006/11/17/1393149.aspx

我注意到了上面所写的CactusStrutsTestCase,搜索了一下,出现了以前看到过的StrutsTestCase这个Jar。事实上,到现在,我还是没有使用CactusStrutsTestCase,而是使用了MockStrutsTestCase。原因主要在于CactusStrutsTestCase一直要我提供Config,而我不知道这个Config指的是什么(现在我明白了这个Config可能指的是web.xml和struts-config.xml)。

选择使用CactusStrutsTestCase或者MockStrutsTestCase还有一些犹豫。这两个对于我来说都是新的事物,我能想到的办法是去找资料然后帮助我选择。到这里的时候基本上已经离开《Junit In Action》这本书的指导了,而是自己去找资料。不过按照自己找到的资料,自己总是遇到这样那样的问题,主要是一些类没有找到(Jar包没有导入,Cactus1.81的包有很多,我不想全部导入),还有一个现在看来是类冲突的,是Jasper-runtime还有一个Jasper-compile和tomcat的类冲突。其次,网上都是没有完全说明在什么环境下,离开IDE而讲述的,所以最终还是失败了。

为了不影响自己的正式应用,我重新建立了一个工程FirstCactus,然后在Firefox中Bookmark All Tabs...保留自己之前所打开的页面,回到Cactus的主页,查看他是否有Quick Start。还好,我找到了比较正式的Quick Start。我按照里面的步骤来完成测试,不过很遗憾,还是失败了。首先我没有明白Cactus的启动方法,不是那种纯理论,而是如何从IDE中启动的方法,这个在《Junit In Action》中并没有说明。最后我在cactus的官方网站上找到how to start,了解到其实有两种,一种是远程服务器端使用servlet启动,另外一种就是使用suite,我最后选择的是后一种,因为还需要和jetty整合。不过我在FirstCactus中使用的是第一种,等会儿看图片就明白了。

其次,我的IDE是NETBEANS,而不是Eclipse,这里的最大的区别是NETBEANS是把SRC和TEST分开的,而这里,分开之后,应用的WEB-INF的classes下其实是不会有Test包下编译的源文件的(默认ANT脚本下),另外一个TEST的LIB也不会复制到应用WEB-INF的lib下的。那么我只能去找找看cactus和netbeans整合的教程。

搜索引擎找到的内容,其实不是很有用,有一篇netbenas 4.1版本的整合cactus教程(具体地址忘记了),其中我比较在意的是其中的ant脚本,虽然我对于ant脚本不是很熟悉,依赖于netbeans的自动构建,但是一小段的话,我还是能看懂的,其主要意思是把test包里面编译好的类复制到应用的classes中。不过好像因为netbeans版本不同,所以实际上他里面的复制脚本是有错误的,这个倒是其次,问题是我不知道这个脚本是否调用了……

一般来说如果我直接点Run的话,貌似并没有把所有类都编译,所以说假如我要编译所有类,就必须点Build,但是事实却是test里面的类并没有复制过去。之前为了按照cactus上的教程完成的调用,首先成功了一次,图片如下:

然后在我想把测试代码和应用代码分开的时候,测试代码却没有编译(在netbeans中,没有编译的类的图标右下角有一个小扳手,反之则没有)。无奈之下,我胡乱尝试菜单中的命令,在点到Build下面的Test的时候,突然发现,测试类编译了,而且被复制了。被复制了是从文件夹的名字上看出来了,因为是那个错误的名字。我稍微整理下思路,netbeans把test和应用代码分开,假如我要在应用中测试的话,必须把代码复制过去才行。如果单纯是这样的话,我其实可以把测试代码保留在Test包中,另外一个重要原因是测试所使用的Lib实际上是不会复制到应用的Lib下的,所以,我觉得还是把一部分测试代码放在应用代码一起,到时候build之后手动删除(因为是带有CVS的应用,编辑器中其实是无法完全删除源代码文件夹的,因为下面是有CVSROOT的)。

决定了这个之后,开始尝试Jetty和Cactus的整合,使用的测试还是之前成功的那个ServletTestCase。《Junit In Action》实际上给出了大部分代码,但是因为我是跳着看书的,所以不知道该怎么启动这个Jetty,在netbeans中貌似是不支持jetty替换server,所以我还是考虑用cactus quick start中提到的测试启动入手。仍旧从网上寻找代码,找到了所谓的junit.textui.TestRunner.run(...)方法,其实这个在《Junit In Action》上有提到,不过我没有注意,习惯了IDE的自动TestCase了……然后在不启动tomcat的情况下测试出来的结果:


(为了防止文字过长而被截掉,分开发二)
分享到:
评论

相关推荐

    cactus的学习笔记(一)

    首先,Cactus并非一种植物,而是Java Web应用的单元测试框架。它由Apache软件基金会开发,其核心理念是让开发者能够在服务器环境中执行单元测试,而不是在客户端或模拟环境中。这是因为Web应用的许多逻辑与服务器...

    jakarta-cactus-12-1.7.1.rar

    Jakarta Cactus是Java开发中的一个开源框架,主要用于Web应用程序的服务器端单元测试。这个"jakarta-cactus-12-1.7.1.rar"压缩包文件包含了Cactus框架的1.7.1版本,这是一个针对Jakarta项目第12次发布的重要更新。 ...

    cactus-1.8.1-bin.zip

    1. **Cactus库**:包括Cactus的核心库和其他必要的JAR文件,这些文件供开发人员在项目中引用,以便编写和运行测试。 2. **文档**:可能包含用户指南、API文档和其他帮助文档,这些文档详细介绍了如何配置和使用...

    使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试2

    4. Cactus:Cactus是一个用于在服务器环境中进行单元测试的框架,主要针对Java EE应用。它允许开发者在应用服务器内部运行测试,减少了部署到服务器进行测试的需要,提高了测试效率。 5. DbUnit:DbUnit是一个Junit...

    基于Junit的测试组件cactus

    Cactus是一个基于JUnit框架的简单测试框架,用来单元测试服务端Java代码。Cactus框架的主要目标是能够单元测试服务端的使用Servlet对象的Java方法如HttpServletRequest,HttpServletResponse,HttpSession等

    使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试3

    结合以上技术,项目通过Ant脚本来构建和部署应用,使用Cactus在EJB和Struts的环境下运行单元测试。DbUnit确保了测试数据的一致性,而StrutsTest则专门针对Struts组件进行测试。最后,JMeter进行性能测试,以验证系统...

    使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试4

    在本文中,我们将深入探讨如何使用一系列技术和工具,如EJB、Struts1.3、Ant、Cactus、DbUnit、JMeter以及StrutsTest,来实现一个完整的测试流程,针对一个基于Java的企业级应用程序进行全面的测试。这些技术在软件...

    cactus-源码.rar

    1. **理解Web服务的测试原理**:Cactus的实现方式揭示了如何在服务器端进行单元测试,有助于提高测试的准确性和效率。 2. **提升框架设计能力**:Cactus的模块化设计和适配器模式可以作为学习框架设计的良好案例。...

    Developing and Unit Testing with Cactus

    这种集成方式使得开发者能够更方便地使用Cactus来进行测试工作。 #### Cactus的独特之处 除了支持传统的单元测试之外,Cactus还具备了一些独特的特性: - **Ant支持**:虽然本文不会详细展示这一特性,但Cactus的...

    CACTUS

    CACTUS字体如果是商业产品,用户需要确保有合法使用权。 5. 字体应用:字体在网站设计、图形设计、排版、广告、UI设计等多个领域都有广泛应用。CACTUS字体可能特别适合生态、户外或自然主题的设计项目。 6. 字体...

    Cactus,MVC权限后台加上一个CMS

    使用Cactus,开发者可以快速构建具备安全控制和内容管理的Web应用程序。在VS2013或VS2015这样的开发环境中,Cactus提供了便捷的集成开发体验。 首先,让我们深入理解MVC模式。MVC是一种设计模式,将应用程序分为三...

    6-Cactus.rar

    为了充分利用这个压缩包,首先需要下载并使用解压工具(如WinRAR、7-Zip等)来打开。在确保来源可靠的情况下,可以查看每个文件,阅读文档,运行程序,或欣赏设计作品。如果涉及到编程代码,可以尝试理解其结构和...

    软件测试技术在J2EE项目中的应用

    JUnit是Java领域广泛使用的单元测试框架,它的Testcase类用于定义测试用例,每个用例包含一系列测试方法,比较实际结果与预期输出,确保代码逻辑正确。TestSuite类则可以组合多个Testcase或TestSuite,实现对多个类...

    Python-Cactus设计师设计的静态站点生成器

    **1. Python作为基础** Python是一种高级、易读性强的编程语言,被广泛用于Web开发、数据分析和自动化任务。Cactus利用Python的灵活性和丰富的库生态系统,为静态站点生成提供了一个强大而可扩展的平台。 **2. ...

    jakarta-cactus-13

    The Cactus project is pleased to announce the release of version 1.7.2. Cactus is a unit testing framework for testing server side java code.

    Python库 | Cactus-3.2.0.tar.gz

    1. **性能提升**:Cactus 3.2.0可能包含优化,以提高代码执行速度和资源利用率,使得Web应用运行更加流畅。 2. **错误修复**:新版本通常会修复前一版本中的已知问题,以提高软件的稳定性和可靠性。 3. **新功能**...

    有向cactus判定的证明

    ### 有向Cactus判定的证明 #### 一、引言 有向Cactus图是一种特殊的有向图,其中每条边至多属于一个简单环。...这种方法为解决实际问题提供了一种新的思路和技术手段,对于理解和应用有向Cactus图具有重要意义。

    cactus-report.xsl

    cactus-report.xsl cactus-report.xsl cactus-report.xsl

Global site tag (gtag.js) - Google Analytics