`
Ivan_Pig
  • 浏览: 387137 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

SSH测试之Action测试

阅读更多
    这段时间面试,当我说道我没有使用SSH做过项目时,面试官的表情基本都比较异常~~~~所以决定抓紧时间看看SSH的整合,忽悠忽悠面试官去。。。。
    研究了一段时间的测试,发现越来越依赖测试了,当看到green bar的时候很爽啊。。。。
    不废话了,没在网上发现具体讲述SSH测试的文章,记录下我的摸索。例子是使用的Spirng2.0技术手册上的在线书签的例子。
    这里只测试Struts的Action。
    RegisterForm.java
package org.bookmark.form;

import org.apache.struts.action.ActionForm;

public class RegisterForm extends ActionForm {

	private String email;
	private String username;
	private String passwd;
	private String passwd2;

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPasswd() {
		return passwd;
	}

	public void setPasswd(String passwd) {
		this.passwd = passwd;
	}

	public String getPasswd2() {
		return passwd2;
	}

	public void setPasswd2(String passwd2) {
		this.passwd2 = passwd2;
	}
}

RegisterController.java
package org.bookmark.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.bookmark.form.RegisterForm;

public class RegisterController extends Action {

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		RegisterForm f = (RegisterForm) form;
		
		System.out.println("Hello" + f.getUsername());
		
		return mapping.findForward("success");
	}

}

应该都没什么可说的,Action里面就是打印下Form里面的用户名,并返回success的Forward。
看下配置文件。
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
		  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
           version="2.5">

	<servlet>
		<servlet-name>action</servlet-name>
		<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
		<init-param>
			<param-name>config</param-name>
			<param-value>/WEB-INF/struts-config.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

    <servlet-mapping>
		<servlet-name>action</servlet-name>
		<url-pattern>/*.do</url-pattern>
	</servlet-mapping>

</web-app>

需要解释吗?
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
    "http://struts.apache.org/dtds/struts-config_1_3.dtd">
          
<struts-config>
	<form-beans>
		<form-bean name="registerForm" type="org.bookmark.form.RegisterForm"/>
	</form-beans>

	<action-mappings>
		<action path="/register"
				type="org.springframework.web.struts.DelegatingActionProxy"
				name="registerForm"
				scope="request"
				input="/index.jsp"
		>
		<forward name="success" path="/index.jsp"/>
		</action>
	</action-mappings>
	
	<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
		<set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext-beans.xml"/>
	</plug-in>

</struts-config>

也不需要解释吧?Struts和Spring的整合资料还是很多的。
application-beans.xml
<?xml version="1.0" encoding="UTF-8"?>
	<!--
		- Middle tier application context definition for the image database.
	-->
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
				http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
				http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
	<bean name="/register" class="org.bookmark.controller.RegisterController" />
</beans>

OK。可以写测试了。网上查了半天,好像一般测试Struts都使用StrutsTest框架。搜索一下就能找到。
RegisterControllerTest.java
package org.bookmark.controller;

import java.io.File;

import servletunit.struts.MockStrutsTestCase;

public class RegisterControllerTest extends MockStrutsTestCase {

	public void testSuccessfulLogin() {
		File f = new File("D:/JPrograms/框架/SSH/out/myweb");
		setContextDirectory(f);
//		setConfigFile("/WEB-INF/struts-config.xml");
		setRequestPathInfo("/register.do");
		addRequestParameter("username", "Ivan");
		actionPerform();
		verifyForward("success");
	}

}


    首先需要说明的是,StrutsTest框架是基于junit3.8的。不同点是,不是继承TestCase了,而是继承MockStrutsTestCase。然后编写方法测试。首先设置根路径,就是你要部署到服务器上的那个目录。第三行,如果提示说找不到Struts的配置文件,那么这行就起作用了。第四行是设置请求路径,就是前端form的action设置。可以加do,也可以不加。下一行是设置请求的参数,再下一行是执行请求。接着就是验证返回的是否是success的forward。
     MockStrutsTestCase里面提供了一堆验证,具体参考它里面的文档。运行测试,green bar就出现了 耗时0.812秒,比启动服务器快了不知道多少倍了吧。。。。
2
0
分享到:
评论
1 楼 testfor1 2009-07-07  
用Struts2吧

相关推荐

    ssh2单元测试action的例子

    根据提供的文件信息,我们可以深入探讨如何为SSH2框架中的Action组件编写单元测试。这份文档将涵盖以下几个关键知识点:Maven依赖配置、Struts2配置、Spring集成以及具体的Action类实现和测试方法。 ### Maven依赖...

    SSH架构测试代码

    1. **单元测试**:针对每个单独的类或方法进行测试,例如测试Action类的业务逻辑是否正确,Service层的服务接口是否按预期工作,以及Hibernate实体类的getter和setter方法等。 2. **集成测试**:测试不同组件之间的...

    ssh测试小demo

    这个"ssh测试小demo"可能是一个简单的示例项目,用于演示如何在Java应用程序中集成SSH框架,以便进行分布式系统操作,如远程命令执行、文件传输等。SSH整合通常指的是Spring、Struts和Hibernate这三个开源框架的集成...

    SSH测试程序

    在"SSH框架基础,简单的测试程序"中,我们可以理解为这是一份教程或示例代码,用于教授如何使用SSH框架进行基本的程序开发。这份资料可能包含以下内容: 1. **环境配置**:如何设置开发环境,包括安装JDK、设置Java...

    ssh三大框架测试项目

    综上,"ssh三大框架测试项目"旨在通过全面的测试确保SSH集成方案的稳定性和效率。这不仅涉及各个框架内部功能的验证,还包括它们之间的协作,以及数据库操作的正确性。这样的项目对于理解SSH框架的工作原理和提升...

    ssh+cxf整合及单个cxf测试样例

    这篇内容将深入探讨SSH+CXF的整合过程,以及如何进行单个CXF测试样例。 首先,Spring作为整个应用的依赖注入容器,负责管理所有的Bean。在整合CXF时,Spring可以配置CXF服务的生命周期,包括服务的创建、发布和销毁...

    基于SSH的在线测试系统

    **基于SSH的在线测试系统详解** SSH(Spring、Struts、Hibernate)是一个广泛应用于Java Web开发的开源框架组合,用于构建高效、可维护且结构清晰的企业级应用。在这个基于SSH的在线测试系统中,我们将深入探讨这三...

    SSH框架搭建——测试

    以上就是SSH框架搭建的基本步骤,涉及到的主要知识点包括Maven项目管理、Struts2的配置与Action、Spring的IoC和AOP、Hibernate的ORM机制以及分页查询。理解并掌握这些内容,你就能自如地构建基于SSH的Java Web应用。

    ssh框架上传文件测试

    这个“ssh框架上传文件测试”可能是针对这一功能的一个实践项目或测试案例。 首先,让我们详细了解SSH框架的每个组件: 1. **Struts2**:这是一个MVC(Model-View-Controller)架构的开源框架,用于构建基于Java ...

    SSH(struts2,Hibernate,Spring)整合及测试亲测可用

    在"SSH整合及测试亲测可用"的项目中,这三大框架被集成在一起,以实现高效的后端逻辑处理。通常,Struts2负责处理HTTP请求,调用业务逻辑;Hibernate则负责数据库操作;而Spring则作为整体的粘合剂,管理它们之间的...

    SSH整合 包含完全的jar包+配置文件+测试用例

    这个压缩包包含了完整的jar包、配置文件以及测试用例,帮助开发者理解并实践SSH框架的整合过程。 1. Spring框架:Spring是一个全面的后端应用框架,核心特性包括依赖注入(DI)和面向切面编程(AOP)。它简化了Java...

    SSH 整合原代码 包括2种方式:注解&xml;配置 (已测试, 原创)

    本资源提供的是SSH整合的原代码,涵盖了通过注解和XML配置两种方式进行整合的方法,并且已经过测试,确保其可行性和原创性。以下是关于SSH整合及这两种配置方式的详细知识: 1. **Struts框架**:Struts是一个基于...

    SSH框架整合测试通过

    在完成上述步骤后,开发者可以进行整合测试,验证SSH框架是否能协同工作,如请求能否正确路由到Action,Service是否正常执行,数据是否准确显示在视图上。如果一切顺利,"SSH框架整合测试通过"表示项目的架构搭建...

    SSH三大框架登录小实例,以及spring的登录增删改查实例测试

    SSH三大框架,全称为Struts2、Hibernate和Spring,是Java Web开发中广泛使用的三大开源框架,它们分别负责表现层、持久层和业务层的管理。在这个实例中,我们将探讨如何利用这三个框架实现一个简单的登录功能,并...

    简单的SSH框架搭建包含测试方法(其中hibernate包含在Spring框架中)

    在提供的压缩包文件"ssh3"中,可能包含了搭建SSH框架所需的配置文件、实体类、DAO、Service、Action以及测试类等。通过阅读这些文件,你可以深入了解SSH框架的整合过程,以及如何在实际项目中应用这些技术。 总结来...

    Myeclipse 搭建 测试 SSH框架

    在SSH框架中,测试是非常重要的一部分,可以帮助验证业务逻辑和数据访问的正确性。通常,我们可以为每个服务方法编写JUnit测试用例,利用Mockito等工具模拟数据,确保代码的健壮性。 通过以上步骤,你可以利用...

    SSH各种数据库连接测试(struts2)

    在SSH项目中,通常会创建一个测试类,通过JUnit进行数据库连接的单元测试。针对每个数据库,编写相应的SQL查询语句,测试连接的有效性、读写操作的正确性。此外,还可以测试事务管理、异常处理等高级功能。 8. ...

    ssh集成的小型测试项目

    SSH集成的小型测试项目是一个基于Java的Web应用程序,它整合了Struts2、Hibernate和Spring三大框架,并且利用Ajax技术增强了用户体验。这个项目对于初学者和想要深入理解这些技术的人来说,是一个非常有价值的实践...

    ssh注解版(已测试)

    SSH是三个开源Java框架的缩写,分别是Struts2、Spring和Hibernate,它们常被用于构建企业级的Java Web应用程序。SSH框架组合提供了模型-视图-控制器(MVC)架构模式,使得开发者能够更高效地开发、管理和维护复杂的...

    springmvc ssh通用的junit测试样例

    2. **测试Struts2动作类**:创建Action的实例,模拟ActionContext,调用execute方法,并检查结果代码和模型数据。 3. **测试Spring服务**:使用@Autowired注解注入服务,然后调用其方法并验证结果。 4. **测试...

Global site tag (gtag.js) - Google Analytics