JUnit4测试基于Spring的Action组件

原创 2016年05月31日 11:52:17
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;

import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpSession;
import org.springframework.mock.web.MockServletContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.opensymphony.xwork2.ActionContext;


@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:com/sf/module/test/resource/spring/applicationContext.xml",
								 "classpath:com/sf/module/test/resource/spring/authorization.xml"})
public class BasicTestCase extends JdbcDaoSupport implements ApplicationContextAware
{
	protected static ApplicationContext applicationContext;
	
	private static final String REQUEST_NAME = "com.opensymphony.xwork2.dispatcher.HttpServletRequest";
	private static final String SERVLET_CONTEXT = "com.opensymphony.xwork2.dispatcher.ServletContext";
	
	
	@BeforeClass
	public static void beforeClass()
	{
		MockServletContext msc = new MockServletContext("com/mypackage/test");
		//msc.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, applicationContext);
		
		MockHttpSession session = new MockHttpSession();
		session.setAttribute("123456", "zhang");
		
		MockHttpServletRequest request = new MockHttpServletRequest();
		request.setSession(session);
		
		ActionContext context = new ActionContext(new HashMap<String, Object>());
		context.put(REQUEST_NAME, request);
		context.put(SERVLET_CONTEXT, msc);
		
		ActionContext.setContext(context);
	}
	
	
	public static void addMockParameters(Map<String, Object> params)
	{
		ActionContext.getContext().setParameters(params);
		
		((MockHttpServletRequest)(ActionContext.getContext().get(REQUEST_NAME))).setParameters(params);
	}
	
	
	public static File getImportFile(String classPath) throws Exception
	{
		int bufferSize = 16384;
		byte buffer[] = new byte[bufferSize];
		
		File file = new File("./temp.xls");
		if(!file.exists())
		{
			file.createNewFile();
		}
		
		OutputStream fos = new FileOutputStream(file);
		BufferedOutputStream bos = new BufferedOutputStream(fos, bufferSize);
		
		InputStream is = BasicTestCase.class.getClassLoader().getResourceAsStream(classPath);
		BufferedInputStream bis = new BufferedInputStream(is, bufferSize);
		
		int readSize = -1;
		while (null != bis && (readSize = bis.read(buffer)) != -1)
		{
			bos.write(buffer, 0, readSize);
		}
		
		bos.close();
		bis.close();
		
		return file;
	}
	


	@Override
	public void setApplicationContext(ApplicationContext appContext) throws BeansException
	{
		applicationContext = appContext;
	}
	
	
	public static ApplicationContext getApplicationContext() throws BeansException
	{
		return applicationContext;
	}

}

Spring MVC学习-----------对Action做JUnit单元测试

如何给spring3 MVC中的Action做JUnit单元测试?  使用了spring3 MVC后,给action做单元测试变得很方便,我以前从来不给action写单元测试的,现在可以根据情况...
  • u011225629
  • u011225629
  • 2015年07月28日 10:26
  • 1948

Struts2 Action的单元测试

本文转自:点击打开链接 对Struts2进行单元测试,以struts 2.2.1.1为例 ,可以使用struts2发行包中的struts2-junit-plugin-2.2.1....
  • zhuyucheng123
  • zhuyucheng123
  • 2012年08月07日 15:24
  • 9738

使用spring配合Junit进行单元测试的总结

最近公司的项目和自己的项目中都用到了spring集成junit进行单元测试,总结一下几种基本的用法: 1.直接对spring中注入的bean进行测试(以DAO为例): 在测试类上添加@Ru...
  • x1066988452
  • x1066988452
  • 2016年12月08日 15:43
  • 3267

Spring整合Junit4进行单元测试

一.加入依赖包 使用spring的测试框架需要加入以下依赖包: JUnit 4 (官方下载:http://www.junit.org/) Spring Test (Spring框架中的test包) S...
  • qq_32786873
  • qq_32786873
  • 2017年02月22日 11:08
  • 18230

Junit4测试ssh中的action

环境搭建: First, include the plugin your POM (ifusing Maven 2) under the test scope:   org.apache.st...
  • woshiyjk
  • woshiyjk
  • 2012年08月02日 12:57
  • 4880

SSH框架学习(九、Junit4单元测试)

框架完成,开始一点一点添加其他内容。 myeclipse10自带有junit4,直接用就好,当然如果要下载也行。https://github.com/KentBeck/junit/downloads...
  • wuyt2008
  • wuyt2008
  • 2012年12月09日 15:58
  • 6541

使用junit测试ssh中的dao

junit测试ssh     junit可以对使用了ssh开源框架的java web应用进行测试。能够很方便的测试其中的dao方法,service层业务逻辑方法,并且不依赖于框架。    ...
  • chenjinping123
  • chenjinping123
  • 2013年02月22日 11:10
  • 622

java ssh 框架下 利用junit4 spring-test进行单元测试

ssh框架下  由于bean实列 都交给spring 管理,要做单元测试就比较苦难,junit4 引入注解方便很多; 1. 加入依赖包   使用Spring的测试框架需要加入以下依赖包: J...
  • CHINADENG
  • CHINADENG
  • 2013年11月21日 14:23
  • 9661

使用junit 测试 , struts2测试,hibernate测试,等各环节的测试 SSH框架

被测试的类package org.virus.struts.action; import java.util.ArrayList; import java.util.List; import o...
  • flash8627
  • flash8627
  • 2010年12月23日 14:57
  • 1316

SSH整合之Junit4测试篇

如果使用了Spring的声明式事务管理,那么Junit测试用例中,要做如下配置。类前面要加上这些注解@RunWith(SpringJUnit4ClassRunner.class) @ContextCo...
  • kaka0509
  • kaka0509
  • 2017年04月26日 23:20
  • 292
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JUnit4测试基于Spring的Action组件
举报原因:
原因补充:

(最多只允许输入30个字)