`
随心而行
  • 浏览: 13873 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用spring-test测试springmvc

 
阅读更多
web应用开发人员在开发过程中需要测试各种请求,通常需要使用web服务器部署后进行调试,本文介绍基于SpringMVC与Spring Test框架编写单元测试对springmvc进行测试。

1、创建maven项目,pom.xml如下
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.qerooy</groupId>
	<artifactId>mvctest</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	
	<properties>
		<spring.version>4.0.2.RELEASE</spring.version>
		<log4j.version>1.2.17</log4j.version>
	</properties>
	
	<dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>
		
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>${log4j.version}</version>
		</dependency>
		
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
		
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>3.2.3.RELEASE</version>
			<scope>test</scope>
		</dependency>
		
	</dependencies>
	
	<build />
</project>


2、编写spring配置文件applicationContext.xml如下(此处仅配置本例子所需),log4j.properties
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:mvc="http://www.springframework.org/schema/mvc" 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-4.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd  
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

	<context:component-scan base-package="*" />
	
	<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />
	
	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
	
	
</beans>


log4j.rootLogger=INFO,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n


3、编写一个controller及测试用的model类,如下
package com.qerooy.controller;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.qerooy.model.User;

@Controller
public class UserController {
	
	Logger log = Logger.getLogger(getClass());

	@RequestMapping
	public void save(User user){
		log.info(user.getUsername());
		log.info(user.getRemark());
	}
	
}


package com.qerooy.model;

public class User {
	
	private String username;
	
	private String remark;

	public String getUsername() {
		return username;
	}

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

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

}



4、编写测试类,执行测试用例即可测试springmvc
package com.qerooy;

import static org.junit.Assert.*;
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.web.context.WebApplicationContext;


@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath*:applicationContext*.xml"}) 
@WebAppConfiguration
public class MVCTest {

	@Autowired  
    private WebApplicationContext wac;
	
	@Test
	public void test() {
		
		MockMvc mockMvc = webAppContextSetup(this.wac).build();  
		try {
			mockMvc.perform(MockMvcRequestBuilders.post("/user/save").characterEncoding("UTF-8")
					.param("username", "qerooy")
					.param("remark", "测试")
					);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		
		assertTrue(true);
	}

}

分享到:
评论

相关推荐

    spring-mvc-test-sample-master.zip_spring mvc_springmvc-test

    10. **Unit Testing and Integration Testing**:在"spring-mvc-test-sample-master"项目中,很可能包含了对这些控制器和业务逻辑的单元测试以及集成测试,使用JUnit、Mockito等工具进行。 11. **Spring MVC Test ...

    aopalliance-1.0.jar、spring-beans-4.1.3.RELEASE.jar、commons-logging.jar等

    Spring+springMVC的jar包以及技术aop需要用到的绝大部分jar包,包含aopalliance-1.0.jar spring-aop-4.1.8.RELEASE.jar spring-aspects-4.1.8.RELEASE.jar spring-beans-4.1.8.RELEASE.jar spring-context-4.1.8...

    spring-mvc开发所有jar包【4.3.4】

    6. **spring-test-4.3.4.RELEASE.jar**:提供了对Spring应用进行单元测试和集成测试的支持,包括TestContext框架、Mock对象和JUnit集成。 7. **jstl-1.2-sources.jar**:JavaServer Pages Standard Tag Library,是...

    springMVC和spring相关的jar

    spring和springmvc相关的jar,里面有spring-webmvc-5.0.7.RELEASE.jar,spring-aop-5.0.7.RELEASE.jar,spring-beans-5.0.7.RELEASE.jar,spring-context-5.0.7.RELEASE.jar,spring-context-support-5.0.7.RELEASE....

    tangt-and-song-dynasties-spring_springmvc_mybatis-master.zip

    通过这个项目,开发者可以学习如何设置SSM框架,如何配置Spring的IoC容器,如何编写SpringMVC的Controller,以及如何使用MyBatis进行数据库操作。同时,项目可能还涉及到了事务管理、异常处理、日志记录等其他重要的...

    spring springmvc mybatis 整合jar包

    spring springmvc mybatis的整合jar包,以及mysql,Junit,fastJson等的jar包,导入这些jar包 搭一个SSM的环境,可以使用SSM框架做一个简单的能够实现增删改查的小项目,具体的jar包及其版本如下 : aopalliance-1.0....

    springmvc+spring+mybatis整合所需jar

    springmvc+spring+mybatis整合所需jar aopalliance-1.0.jar aspectjweaver-1.7.1.jar commons-fileupload-1.2.2.jar commons-logging-1.1.1.jar druid-0.2.9.jar jstl-1.2.jar junit-4.11.jar mybatis-3.1.1.jar ...

    spring+springmvc4.2.4.rar

    此外,`spring-test-4.2.4.RELEASE.jar`提供了Spring应用的测试支持,包括测试环境的配置、模拟对象的创建等,让单元测试和集成测试变得更加方便。 最后,`aspectjweaver.jar`是AspectJ的运行时库,它用于实现AOP...

    ssm-test案例(spring+springMVC+mybatis)整合

    SSM(Spring、SpringMVC、Mybatis)是Java Web开发中常见的三大框架集成,用于构建高效、灵活的Web应用程序。下面将详细讲解这三大框架的整合过程以及它们各自的核心功能。 1. Spring 框架: Spring 是一个全面的...

    spring4+springMVC+Mybatis项目搭建以及测试demo

    在本文中,我们将深入探讨如何搭建一个基于Spring4、SpringMVC和Mybatis的项目,以及如何进行测试。这个项目组合通常被称为“SSM”框架,是Java Web开发中的主流选择,提供了强大的依赖注入、MVC架构和持久层管理...

    spring mvc的简单单元测试

    3. **Spring Test**:Spring 提供了自己的测试模块,包含`@RunWith(SpringRunner.class)`注解,它可以将JUnit测试与Spring环境结合,自动加载ApplicationContext,使得我们可以使用依赖注入来测试bean。 4. **@...

    jdk7-Spring MVC核心包集合.rar

    jdk7SpringMVC 13个核心jar包大集合 包括 1.spring-aop-3.2.0.RELEASE.jar ...10.spring-test-3.2.0.RELEASE.jar 11.spring-tx-3.2.0.RELEASE.jar 12.spring-web-3.2.0.RELEASE.jar 13.spring-webmvc-3.2.0.RELEASE.jar

    maven整合spring-springmvc-mybatis源码

    通过以上步骤,我们可以构建出一个完整的、使用Maven管理、Spring-SpringMVC提供业务逻辑、MyBatis处理数据访问的Web应用程序。这样的架构具有良好的模块化和可扩展性,是现代企业级Java Web开发的常见选择。

    Xcafe-Netty4SpringMVC-project

    【Xcafe-Netty4SpringMVC-project】是一个创新性的项目,它将SpringMVC框架集成到了基于Netty的高性能网络应用服务器中。这个项目的核心目标是利用Netty的非阻塞I/O和事件驱动架构来提升Web应用程序的性能和可扩展性...

    spring MVC环境搭建 所需jar包.zip

    ├── spring-test-4.3.0.RELEASE.jar ├── spring-tx-4.3.0.RELEASE.jar ├── spring-web-4.3.0.RELEASE.jar ├── spring-webmvc-4.3.0.RELEASE.jar ├── spring-webmvc-portlet-4.3.0.RELEASE.jar ...

    Cucumber-JVM-Spring-MVC-Test-HTMLUnit-Demo:演示如何将Spring-MVC-Test-HTMLUnit与Cucumber-JVM结合使用

    在"Cucumber-JVM-Spring-MVC-Test-HTMLUnit-Demo"项目中,开发者首先会运行`mvn spring-boot:run`命令启动应用程序,然后使用`mvn clean compile test`来执行测试。这个过程展示了如何将这三个组件集成在一起: 1. ...

    Spring+SpringMVC JAR包

    6. **spring-test-4.3.13.RELEASE.jar**:这个模块提供了编写和执行Spring应用测试的工具,支持JUnit和TestNG,方便进行单元测试和集成测试。 7. **spring-orm-4.3.13.RELEASE.jar**:提供了对ORM(Object-...

    SpringMVC jar包合集

    - spring-test 和 mockito 等库用于编写单元测试和集成测试,确保 Spring MVC 应用的功能正确性。 以上这些 jar 包组合在一起,构成了一个完整的 Spring MVC 开发环境,涵盖了从请求处理到视图渲染,再到数据持久...

    spring-3.2-lib

    6. **spring-test-3.2.2.RELEASE.jar**:提供了测试支持,帮助开发者进行单元测试和集成测试,可以与其他Spring组件结合使用,提高测试效率。 7. **spring-jdbc-3.2.2.RELEASE.jar**:提供了对JDBC(Java Database ...

    spring mvc jar.zip

    idea构建springmvc项目默认下载的jars aopalliance-1.0.jar commons-logging-1.2.jar spring-aop-4.3.18.RELEASE.jar spring-aspects-4.3.18.RELEASE....spring-test-4.3.18.RELEASE.jar spring-tx-4.3.18.RELEASE.jar

Global site tag (gtag.js) - Google Analytics