`

spring mvc 单元测试类 测试controller

 
阅读更多
package newrenhewww;

import org.junit.Assert;
import org.junit.Before;
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.AbstractTransactionalJUnit4SpringContextTests;
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.MvcResult;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;

import cn.renhe.model.po.Member;

/**
 * Title: MyMvcTest.java<br>
 * Description: <br>
 * Copyright (c) 人和网版权所有 2015    <br>
 * Create DateTime: 2015年8月3日 下午3:29:48 <br>
 * @author zhuw
*/
//告诉framework怎么运行这个类  
@RunWith(SpringJUnit4ClassRunner.class)   
@WebAppConfiguration(value = "src/main/webapp")
//bean的配置文件路径,这个是Test类的classpath路径,如果是Spring推荐的目录结构,应该在:项目目录/src/test/resources/里  
@ContextConfiguration(locations = {"classpath:spring.xml","classpath:spring-mvc.xml","classpath:spring-mybatis.xml"}) 
public class MyMvcTest extends AbstractTransactionalJUnit4SpringContextTests{
	@Autowired  
    private WebApplicationContext webApplicationContext;  
    private MockMvc mockMvc;  
    @Before  
    public void setUp(){  
        mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();  
    }  
    /**
     * 有返回view的请求
     * @throws Exception
     */
    @Test  
    public void testView() throws Exception {  
    	
    	MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("/contact/invitelist");
    	//设置resquest属性
    	builder.requestAttr("member", getMember());
    	//设置session属性
    	builder.sessionAttr("member", getMember());
    	ResultActions action = mockMvc.perform(builder);
    	//判断返回view
    	action.andExpect(MockMvcResultMatchers.view().name("/contact/invitelist"));
    	//判断返回的model里的属性 是否存在
    	action.andExpect(MockMvcResultMatchers.model().attributeExists("invitelist"));
    	//打印结果
    	action.andDo(MockMvcResultHandlers.print());
    	//返回的结果
    	MvcResult result = action.andReturn();
    	
    	Assert.assertNotNull(result.getModelAndView().getModel().get("invitelist"));  
    }  
    
    private Member getMember(){
    	Member m = new Member();
    	m.setId(38);
		return m;
    }
}

 

 

分享到:
评论

相关推荐

    iLink:拉丁云代码测试Spring MVC

    1.项目管理和综合工具:maven(1)Maven安装和配置:参考(2)Eclipse和IDEA配置Maven2.Spring版本:5.0.73.MVC:Spring MVC配置(1)jar包:spring-webmvc.jar(2)web.xml配置SpringMVC监听类:org.springframework.web....

    SSM代码自动生成

    支持 MySql,SqlServer,DB2 数据库,选择相应的数据库,并进行测试,在项目中生成实体类entity,service(包括接口与实现类),mybatis的mapper xml文件,spring的单元测试类,一些util类,并包含对应的配置文件,...

    Spring.3.x企业应用开发实战(完整版).part2

    17.2.3 单元测试类包结构规划 17.2.4 系统的结构图 17.2.5 PO的类设计 17.2.6 持久层设计 17.2.7 服务层设计 17.2.8 Web层设计 17.2.9 数据库设计 17.3 开发前的准备 17.4 持久层开发 17.4.1 PO类 17.4.2 DAO基类 ...

    build-SSM-Framework:使用spring + spring MVC + Mybatis构建Java Web项目

    com.shenqingtong.certification.controller为controller层com.shenqingtong.certification.dao为数据持久层com.shenqingtong.certification.model为model层com.shenqingtong.certification.service为业务逻辑的接口...

    Spring3.x企业应用开发实战(完整版) part1

    17.2.3 单元测试类包结构规划 17.2.4 系统的结构图 17.2.5 PO的类设计 17.2.6 持久层设计 17.2.7 服务层设计 17.2.8 Web层设计 17.2.9 数据库设计 17.3 开发前的准备 17.4 持久层开发 17.4.1 PO类 17.4.2 DAO基类 ...

    springboot学习思维笔记.xmind

    Spring MVC的测试 MockMVC MockHttpServlerRequest MockHttpServletResponse MockHttpSession SpringBoot基础 SpringBoot概述 什么是SpringBoot SpringBoot核心功能 独立运行的Spring...

    Spring-Reference_zh_CN(Spring中文参考手册)

    8.2. 单元测试 8.3. 集成测试 8.3.1. Context管理和缓存 8.3.2. 测试fixture的依赖注入 8.3.3. 事务管理 8.3.4. 方便的变量 8.3.5. 示例 8.3.6. 运行集成测试 8.4. 更多资源 II. 中间层数据访问 9. 事务管理 9.1. ...

    Spring中文帮助文档

    8.2.2. 单元测试支持类 8.3. 集成测试 8.3.1. 概览 8.3.2. 使用哪个支持框架 8.3.3. 通用目标 8.3.4. JDBC测试支持 8.3.5. 常用注解 8.3.6. JUnit 3.8遗留支持 8.3.7. Spring TestContext Framework 8.3.8....

    Spring API

    8.2.2. 单元测试支持类 8.3. 集成测试 8.3.1. 概览 8.3.2. 使用哪个支持框架 8.3.3. 通用目标 8.3.4. JDBC测试支持 8.3.5. 常用注解 8.3.6. JUnit 3.8遗留支持 8.3.7. Spring TestContext Framework 8.3.8....

    基于SSM的汽车销售系统(源码+部署说明+演示视频+源码介绍).zip

    本资源是一个基于SSM(Spring、Spring MVC、MyBatis)的汽车销售系统。它包含了完整的源代码、部署说明、演示视频以及源码介绍,旨在帮助开发者快速搭建一个功能完善的汽车销售管理系统。源码介绍:该汽车销售系统采用...

    springmvcwendang

    (2)新建一个Student类 用于测试注解 (3)配置注解 @Controller @RequestMapping("/list") (3)配置视图名称 &lt;!-- 配置视图名称 --&gt; &lt;bean class="org.springframework.web.servlet.view....

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    10.5 Spring的控制器(Controller) 10.5.1 Controller接口 10.5.2 命令控制器(BaseCommandController) 10.5.3 表单控制器(SimpleFormController) 10.5.4 多动作控制器(MultiActionController) 10.6 Spring的...

    springmybatis

    在test_src 源码目录下建立com.yihaomen.test这个package,并建立测试类Test: 程序代码 程序代码 package com.yihaomen.test; import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache....

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    10.5 Spring的控制器(Controller) 10.5.1 Controller接口 10.5.2 命令控制器(BaseCommandController) 10.5.3 表单控制器(SimpleFormController) 10.5.4 多动作控制器(MultiActionController) 10.6 Spring的...

    JAVA Spring框架实现登陆查询 完整搭建框架方法的word文档 包含mysql文件

    3.4 修改spring-mvc 文件 .1 修改controller包的自动扫描注解,如图 2 定义jsp文件存放的路径 &lt;property name="prefix" value="/jsp/" /&gt; 如图 3.5修改spring-mabtis.xml 1 修改自动扫描的包 我建的包是...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    10.5 Spring的控制器(Controller) 10.5.1 Controller接口 10.5.2 命令控制器(BaseCommandController) 10.5.3 表单控制器(SimpleFormController) 10.5.4 多动作控制器(MultiActionController) 10.6 Spring的...

    Spring面试题

    ☆ Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。 Spring 框架的...

    springboot实例2

    添加了自动包扫描,可以添加多个controller类,本人亲自测试过,可以直接运行,如果pom.xml文件有报错,找到位置提示,去掉本地的那个包,重新更新下maven工程即可

    后端开发/大数据开发 + RESTful API + 项目(依赖+启动类+实体类+controller层+统一响应对象)

    我们用的是Spring boot 版本的MVC ,spring boot 已经为我们自动装配。 如果是原生MVC的就需要加过滤器; 整个项目用的是Postman工具来进行的接口测试,Postman 可以自行在官网下载,如果需要 我来给您发,您可以私...

    java三大框架

    使用Spring构建的应用程序易于单元测试。 Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。 Spring帮助你解决许多问题而无需...

Global site tag (gtag.js) - Google Analytics