`
xxp3369
  • 浏览: 151216 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多
整合Spring和Hibernate之后,对于业务逻辑类的测试方法,可让测试类继承AbstractTransactionalSpringContextTests,
而不是直接继承TestCase,避免在测试单元中出现懒加载问题。
- 重点理解为何会出现懒加载问题



package com.bjsxt.oa.web.actions;

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

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.bjsxt.oa.manager.OrgManager;

public class OrgAction extends DispatchAction {

	private OrgManager orgManager;
	
	/**
	 * 进入主界面
	 */
	@Override
	protected ActionForward unspecified(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		// TODO 查询机构列表
		return mapping.findForward("index");
	}
	
	/**
	 * 打开添加界面
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	public ActionForward addInput(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
			return mapping.findForward("add_input");
	}

	//添加机构信息
	public ActionForward add(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
			return mapping.findForward("add_success");
	}
	
	public ActionForward del(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
			return mapping.findForward("del_success");
	}	
	
	public ActionForward updateInput(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
			return mapping.findForward("update_input");
	}
	
	public ActionForward update(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
			return mapping.findForward("update_success");
	}

	public void setOrgManager(OrgManager orgManager) {
		this.orgManager = orgManager;
	}
}



package com.bjsxt.oa.web.forms;

import org.apache.struts.action.ActionForm;

public class OrgActionForm extends ActionForm {
	private int id;
	private String name;
	private String sn;
	private String description;
	private int parentId;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSn() {
		return sn;
	}
	public void setSn(String sn) {
		this.sn = sn;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	public int getParentId() {
		return parentId;
	}
	public void setParentId(int parentId) {
		this.parentId = parentId;
	}
}



<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	     xmlns:aop="http://www.springframework.org/schema/aop"
	     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.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">

	<bean name="/org" class="com.bjsxt.oa.web.actions.OrgAction" scope="prototype">
		<property name="orgManager" ref="orgManager"/>
	</bean>
</beans>




package com.bjsxt.oa.manager;

import java.util.Iterator;
import java.util.List;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.AbstractTransactionalSpringContextTests;

import com.bjsxt.oa.model.Organization;

public class OrgManagerTest extends AbstractTransactionalSpringContextTests {

	private OrgManager orgManager;
	
	@Override
	protected String[] getConfigLocations() {
		return new String[]{"applicationContext-*.xml"};
	}

	public void testAddOrg() {
		
//		Organization org = new Organization();
//		org.setName("测试机构");
//		org.setDescription("描述");
//		om.addOrg(org, 0);
		
		for(int i=0; i<5; i++){
			Organization org = new Organization();
			org.setName("父机构"+i);
			orgManager.addOrg(org, 0);
			
			for(int j=0; j<10; j++){
				Organization c = new Organization();
				c.setName("["+org.getName()+"]下面的子机构"+j);
				orgManager.addOrg(c, org.getId());
			}
		}
		
		//使得父类能够提交事务
		setComplete();
	}

	public void testDelOrg() {
		fail("Not yet implemented");
	}

	public void testUpdateOrg() {
		fail("Not yet implemented");
	}

	public void testFindOrg() {
		
		Organization org = orgManager.findOrg(5);
		
		System.out.println(org.getName());
		
	}

	public void testSearchOrgs() {
		
		List orgs = orgManager.searchOrgs(0);
		for (Iterator iterator = orgs.iterator(); iterator.hasNext();) {
			Organization org = (Organization) iterator.next();
			System.out.println(org.getName());
		}
		
	}

	public void setOrgManager(OrgManager orgManager) {
		this.orgManager = orgManager;
	}

}
分享到:
评论

相关推荐

    NC65 02 patch_与OA单点登录补丁_ssx_2019-05-07.zip

    【标题】"NC65 02 patch_与OA单点登录补丁_ssx_2019-05-07.zip" 提供的信息显示,这是一个针对NC65版本的02号补丁,主要功能是实现与OA(Office Automation,办公自动化系统)的单点登录集成。"ssx"可能是开发人员或...

    02_OA系统管理员说明书.pdf

    然而,根据标题“02_OA系统管理员说明书.pdf”以及描述“02_OA系统管理员说明书.pdf”,我们可以推断这是关于OA系统管理员操作手册的内容。OA系统一般指的是办公自动化系统,是一种面向组织内部的管理以及信息整合的...

    mips_yamon_usm_02.22.tar.gz_OA系统_C/C++_

    【标题】"mips_yamon_usm_02.22.tar.gz_OA系统_C/C++_" 提供的信息表明,这是一个与 MIPS 架构相关的 YAMON 引导加载器的用户手册,版本为 02.22,并且与办公自动化(OA)系统有关,文档采用 C 和 C++ 语言编写或...

    SSH实现OA系统

    在提供的文件列表中,"oa02.sql"可能是数据库脚本,用于初始化OA系统的数据库结构和初始数据。"oa项目要求.txt"可能包含了项目的需求说明和规范。"OA02.zip"可能是项目的源代码或资源文件的压缩包。"主要内容.txt...

    oa系统测试用例.pdf

    测试编号:SR-F-01-01-01-02 测试目的:验证用户在点击编辑按钮后,能否重新编辑图书类别名称 执行角色:测试预置条件:具有图书类别编辑功能,在代码中规定了图书类别编辑的范围 测试步骤: 1)点击图书类别...

    PHP信呼协同办公OA系统 v2.5.0

    信呼协同办公OA系统是开源的一款办公系统,跨平台的系统,支持APP,pc网页版,pc客户端等。 信呼协同办公OA系统...日期:2022-06-02 1、完善系统安全性。 2、系统优化等。 3、添加水印功能。 4、增加进销存模块。

    Java就业班OA项目实战培训视频【12讲】

    资源名称:Java就业班OA项目实战培训视频【12讲】资源目录:【】Java就业班OA项目实战01【】Java就业班OA项目实战02【】Java就业班OA项目实战03【】Java就业班OA项目实战04【】Java就业班OA项目实战05【】Java就业班...

    软件开发与项目管理-1期 KC02_模块五_模块案例_OA办公自动化测试分析报告.doc

    《软件开发与项目管理-1期 KC02_模块五_模块案例_OA办公自动化测试分析报告.doc》是一份详细阐述OA办公自动化系统测试过程和结果的文档,旨在评估该系统的功能性和稳定性,以确保其符合项目需求。该报告不仅为测试...

    通达2013原版+破解版+OA精灵+IM1000用户补丁01

    绝对能用的通达OA2013版原版+破解版+OA精灵+IM1000用户补丁。 这是从麦枫和富阳上搜集的资料,汇总整合的。 现在好多破解版都不提供原版,以至于根本就不能用。本人经反复测试。这个绝对能用。 经过破解后,通达...

    78OA办公系统(完全永久免费的oa办公系统)4.28.02.0406官方安装版

    78oa办公系统是全球第一个完全永久免费的oa办公系统,不限使用时间、不限用户数、不限功能。拥有和企业版完全相同的系统架构,78oa办公系统v4的数据可轻松导入到企业版使用,完全免除用户的后顾之忧。 系统初始管理...

    续集 _ 再发通达OA多枚0day1

    0x02部分提到了另一个SQL注入点,但这个漏洞有一定程度的过滤。漏洞参数为`CONTENT_ID_STR`,同样在11.5版本中。然而,这次的注入尝试受到了`td_trim`函数的限制,该函数会过滤掉包括空格、制表符、换行符、回车符和...

    APS.net(C#) 开发的OA系统

    【标题】"APS.net(C#) 开发的OA系统"是一个基于.NET框架,利用C#编程语言构建的企业级办公自动化(OA)系统。这个系统具备基础的流程引擎和权限管理功能,旨在提升组织内部的工作效率和协作能力。 【描述】中提到的...

    基于java的OA管理系统

    【OA管理系统概述】 OA(Office Automation)管理系统是企业或组织实现办公自动化的重要工具,它能够高效地整合资源、规范工作流程、提升协作效率。基于Java的OA管理系统利用Java语言的强大特性和丰富的开源框架,...

    OA办公管理系统(源代码+数据库脚本)

    数据库脚本,如"2010.05.02.sql",通常用于创建和初始化数据库结构。这个SQL文件包含了创建表格、设置字段类型、定义约束等数据库对象的SQL语句。在OA办公管理系统中,数据库存储了用户信息、权限设置、工作流程状态...

    通达2013原版+破解版+OA精灵+IM1000用户补丁02

    绝对能用的通达OA2013版原版+破解版+OA精灵+IM1000用户补丁。 这是从麦枫和富阳上搜集的资料,汇总整合的。 现在好多破解版都不提供原版,以至于根本就不能用。本人经反复测试。这个绝对能用。 经过破解后,通达...

    ASP.NET开发OA开发文档.part02

    ASP.NET开发OA开发文档.part02 &lt;br&gt;2个文件

    ItcastOA02_itcastoa_

    《ItcastOA02_itcastoa_》是一个OA(Office Automation)项目的源代码包,它主要目的是为了帮助开发者更高效地进行项目开发。这个项目基于SSH(Struts2、Hibernate和Spring)框架构建,SSH是Java领域中广泛使用的三...

    世纪葵花商业破解版--网吧电视视频直播工具_02

    4、扩展性强、采用模块化的设计思想,能够轻松进行升级、还可根据用户需要轻松嵌入到别的OA系统或者门户网站中 软件为完全破解,而且破解完美,软件可同时直播20个频道可以直播桌面 可以直播媒体文件 还可以通过...

    02校园OA系统-v30.docx

    #### 一、校园OA系统的总体介绍与价值 **校园OA系统**,即校园办公自动化系统,是一种专为学校设计的信息化管理工具。它借助于先进的智能工作流引擎技术,能够根据学校的具体需求定制业务流程,从而有效支持学校的...

Global site tag (gtag.js) - Google Analytics