`
chenhuilove123
  • 浏览: 8582 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多
1,项目中用的Maven做项目管理工具,在pom.xml中的必须配置如下:
	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>jsp-api</artifactId>
		<version>2.0</version>
		<scope>test</scope>
	</dependency>
	<dependency>
		<groupId>org.apache.struts</groupId>
		<artifactId>struts2-junit-plugin</artifactId>
		<version>2.1.8.1</version>
		<scope>test</scope>
	</dependency>
这个是使用struts2-junit-plugin插件中必须的,当然我说的是ssh2的项目,肯定也少不了struts2-spring-plugin.jar的依赖了,如下:
	<dependency>
		<groupId>org.apache.struts</groupId>
		<artifactId>struts2-spring-plugin</artifactId>
		<version>2.1.8.1</version>
	</dependency>
2,struts.xml中的配置(简单的贴一下):
	<action name="person_*" class="personAction" method="{1}">
		<result name="adminLoginSuccess">/admin_index.jsp</result>
		<result name="personLoginSuccess">/go_person_index.jsp</result>
		。。。。
	</action>

3,application-action.xml中的配置如下:
	<bean id="personAction" class="com.woyo.action.PersonAction">
		<property name="personBo" ref="personBo"></property>
		<property name="adminBo" ref="adminBo"></property>
		<property name="groupBo" ref="groupBo"></property>
		。。。配置你的bo层
	</bean>
4,在PersonAction中:
	
public class PersonAction extends BaseAction implements ModelDriven<Person>,Preparable{
	
	private static final long serialVersionUID = 1L;
	private PersonBO personBo;
	private AdminBO adminBo;
	private GroupBO  groupBo;
	。。。其他的就不写了,还有getter和setter
	public String login(){
		if(type==1){
			Person p =personBo.findByName(name);
			if(p!=null){
				if(this.password.equals(p.getPassword())){
					ServletActionContext.getRequest().getSession().setAttribute("loginPerson", p);
					//ActionContext.getContext().getSession().put("loginPerson", p);
					return "personLoginSuccess";
				}
			}else{
				this.setMessage("用户名和密码不正确!");
			}
		}else{
			Admin admin=adminBo.findByName(name);
			if(admin!=null){
				if(this.password.equals(admin.getPassword())){
					ServletActionContext.getRequest().getSession().setAttribute("loginAdmin", admin);
					//context.getContext().getSession().put("loginAdmin", admin);
					return "adminLoginSuccess";
				}
			}else{
				this.setMessage("管理员用户名或者密码不正确!");
			}
		}
		return "login";
	}
	什么是PersonAction的代码,你也看到了,我有个注释的一行,//ActionContext.getContext().getSession().put("loginPerson", p);就是它
	单元测试的时候这个ActionContext.getContext().getSession()老返回为null
       就改用这个ServletActionContext.getRequest().getSession().setAttribute("loginPerson", p)了。

5,在PersonActionTest中:
	public class PersonActionTest extends StrutsSpringTestCase {

	private PersonAction personAction;
	private PersonBO personBo;
	private AdminBO adminBo;
	private GroupBO groupBo;
	private HttpSession session;
	/**
	 * 默认查找classpath下的applicationContext.xml文件
	 * 下面的这个重写方法可以不写
	 */
	protected String getContextLocations() {
		return "file:src/main/resources/applicationContext.xml";
	}

	public void testLogin() {
		//从applicationContext中取得实体对象
		personBo =(PersonBO)applicationContext.getBean("personBo");
		adminBo=(AdminBO)applicationContext.getBean("adminBo");
		groupBo=(GroupBO)applicationContext.getBean("groupBo");
		//从struts2的配置文件中取得的实例
		ActionProxy proxy = getActionProxy("/person/person_login.action");
		personAction = (PersonAction) proxy.getAction();
		int type=2;
		if(type==1){
			//测试person的登陆
			personAction.setName("bill");
			personAction.setPassword("pass");
			personAction.setType(type);
			String result=personAction.login();
			PersonActionTest.assertEquals("personLoginSuccess", result);
		}else{
			//测试admin的登陆
			personAction.setType(type);
			personAction.setName("admin");
			personAction.setPassword("pass");
			String result=personAction.login();
			PersonActionTest.assertEquals("adminLoginSuccess", result);
		}
    	
	}
分享到:
评论

相关推荐

    ssh2单元测试action的例子

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

    SSH架构测试代码

    2. **集成测试**:测试不同组件之间的交互,例如Struts的Action到Service的调用,以及Service对Hibernate DAO的调用。这一步确保了各个组件在组合使用时能正常协同工作。 3. **功能测试**:模拟用户操作,验证整个...

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

    SSH,即Struts2、Hibernate和Spring的组合,是Java Web开发中的一种经典框架集成,用于构建企业级的MVC(Model-View-Controller)应用。这个整合旨在提供一个高效、灵活且可扩展的开发环境,使开发者可以专注于业务...

    基于SSH的在线测试系统

    - **考试创建与管理**:教师可以创建在线考试,设定考试时间、题量、难度等参数,Struts2的Action可以协调这部分逻辑。 - **考试过程**:学生在指定时间内进行答题,提交后系统自动评分,这需要结合JavaScript和...

    SSH框架搭建——测试

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

    ssh框架上传文件测试

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是一种经典的Java web开发框架。在SSH框架中,文件上传功能是常见的需求,特别是在处理用户提交的表单数据时,例如图片、文档或者其他多媒体文件的上传。这个...

    ssh三大框架测试项目

    在SSH项目中,Spring管理着Struts2的Action实例,以及数据库连接和其他服务。 3. **Hibernate**:Hibernate是一个对象关系映射(ORM)工具,它简化了数据库操作。通过Hibernate,开发者可以使用Java对象直接操作...

    J2EE SSH2架构(2)

    在实际项目中,Module2可能包含相关的源码、配置文件和测试案例,帮助开发者深入理解SSH2的整合和应用。通过对这些模块的学习和实践,开发者可以掌握如何构建基于SSH2的J2EE应用程序,提高开发效率,同时享受到SSH2...

    SSH2项目增删改查事例

    在SSH2项目中,Spring管理着所有Bean,包括DAO(数据访问对象)、Service(业务逻辑服务)以及Action类。通过Spring的AOP(面向切面编程),可以实现事务管理,确保数据库操作的原子性和一致性。 3. **Hibernate**...

    SSH2项目样例

    8. **测试**:编写JUnit测试用例,对Action、Service和DAO进行单元测试,确保每个组件的功能正确无误。 通过这个SSH2项目样例,你可以深入理解三大框架的协同工作原理,学习如何在实际项目中有效地组织代码,以及...

    ssh测试小demo

    在SSH整合中,Struts2负责处理用户交互,将用户请求映射到特定的Action,然后调用Spring管理的业务服务。 Hibernate则是一个对象关系映射(ORM)框架,它将数据库操作转换为对Java对象的操作,降低了数据库操作的...

    ssh2最小系统

    "SSH2最小系统"是指使用最精简的依赖库来构建一个基于Spring和Struts2(这里用的是缩写SSH,分别代表Spring、Struts2和Hibernate)的应用。这个项目对于初学者来说是一个很好的起点,它能帮助理解这三个框架如何协同...

    ssh2项目源码

    9. **测试**:SSH2项目通常包含JUnit测试,用于验证业务逻辑的正确性和持久化层的数据操作。 通过学习和实践SSH2项目,初学者可以深入理解这三大框架的集成使用,以及Java Web开发的基本流程,为后续的复杂项目开发...

    JAVA SSH2框架

    **JAVA SSH2框架详解** SSH2框架,全称为Struts2、Spring和Hibernate的集成框架,是Java Web开发中常用的一种高效、稳定的架构方案。它将MVC模式的Struts2、依赖注入与面向切面编程的Spring以及持久层框架Hibernate...

    SSH2框架搭建详细图解

    SSH2框架,全称为Struts2、Spring和Hibernate2的集成框架,是Java Web开发中的一个常用技术栈,主要用于构建高效、可维护性高的企业级应用程序。本详细图解将带你一步步了解如何搭建SSH2框架,并实现一个简单的注册...

    ssh2项目练习

    SSH2项目练习主要涉及到的是Java Web开发中的Spring、Struts2和Hibernate这三大框架的集成应用。这三大框架是Java企业级开发中的常用工具,它们分别负责不同的职责:Spring作为应用上下文和依赖注入容器,Struts2...

    ssh2框架例子

    SSH2框架,全称为Spring、Struts2和Hibernate2的集成框架,是Java开发领域中常用的Web应用开发框架。这个框架结合了Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面...

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

    在SSH整合中,例如,使用@Controller注解标记一个类为Spring的控制器,@Service注解标记业务服务,@Repository注解标记数据访问层,Struts2的@Action注解定义动作映射。Hibernate中,@Entity注解表示数据库实体,@...

    SSH框架整合测试通过

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

    ssh2整合最新版

    3. **Struts2框架**(2.3.4版本):Struts2是一个基于MVC设计模式的Web应用框架,用于构建可维护、可扩展和易于测试的Java Web应用。Struts2.3.4版本增强了插件架构,提高了性能,提供了更多UI组件,同时支持RESTful...

Global site tag (gtag.js) - Google Analytics