`

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;
    }
}

 

 

分享到:
评论

相关推荐

    spring MVC junit 单元测试(controller)

    在Spring MVC框架中,单元测试是确保代码质量的重要步骤,特别是在控制器层(Controller)。这篇博客主要探讨了如何使用JUnit进行Spring MVC Controller的单元测试。在实际开发中,单元测试可以帮助我们尽早发现潜在...

    spring MVC测试实例

    总结一下,本Spring MVC测试实例主要涵盖了以下知识点: 1. DispatcherServlet的作用和配置。 2. Controller的定义与@RequestMapping注解的使用。 3. 在MyEclipse中创建和运行Spring MVC项目。 4. web.xml和spring-...

    Spring MVC 教程快速入门 深入分析

    十三、如何给Spring3 MVC中的Action做JUnit单元测试:说明了如何对Spring MVC中的控制器进行单元测试,包括配置测试环境和编写测试代码。 十四、Spring MVC转发与重定向:详细讲解了在Spring MVC中如何使用转发和...

    spring mvc 4.0

    3. **注解驱动的控制器**:Spring MVC 4.0广泛使用了Java注解,如@Controller、@RequestMapping等,使控制器类的定义更加简洁,减少了XML配置。 4. **路径变量**:在@RequestMapping注解中,可以使用路径变量(path...

    Mastering Spring MVC 4(2015.09)源码

    在Spring MVC中,开发者可以通过@Autowired注解自动装配依赖,使得代码更易于测试和维护。 此外,Spring MVC还提供了数据绑定和验证功能。表单提交的数据可以直接绑定到控制器方法的参数上,通过@ModelAttribute...

    单元测试案例junit +spring mvc +springboot

    在进行单元测试时,可以利用Spring MVC的MockMvc类来模拟HTTP请求,测试控制器方法的行为,而无需实际启动服务器。 3. Spring Boot Spring Boot旨在简化Spring应用的初始搭建以及开发过程。它通过预设合理的默认...

    Spring MVC + Mybatis+Spring实现的个人博客系统

    - `Spring MVC + Mybatis+Spring实现的个人博客系统`: 这个可能是博客系统的源代码,包括控制器、服务、DAO、实体类以及配置文件等。 **6. 开发流程** 开发此类系统时,一般会经历以下几个步骤:设计数据库模型,...

    07. Spring Boot单元测试

    总结,Spring Boot的单元测试涵盖多个层次,从简单的类方法测试到复杂的集成测试,都有相应的工具和策略。理解和熟练运用这些知识点,能有效提升开发效率,保证代码质量。在实际项目中,应根据需求选择合适的测试...

    spring mvc jar包

    3. `org.springframework.web.servlet-3.0.2.RELEASE.jar`:这是 Spring MVC 的核心模块,提供了控制器(Controller)、模型视图(ModelAndView)以及调度器Servlet(DispatcherServlet)等关键组件。...

    spring MVC .docx

    Spring MVC的设计目标是提供一个清晰的组件化架构,使得开发者可以独立地开发和测试控制器、服务层、数据访问层以及视图层。这个框架通过Model-View-Controller(MVC)设计模式,将业务逻辑、用户界面和数据处理有效...

    Spring MVC简单例子

    10. **单元测试和集成测试**:学习如何使用JUnit和Mockito等工具对Controller和Service层进行单元测试,以及使用Spring Test对整个应用进行集成测试。 通过这个简单的例子,初学者可以全面地了解Spring MVC的工作...

    spring mvc经典入门案例

    `springMvcCommentTest` 这个文件可能是测试类,用于测试 Spring MVC 控制器的行为。在 Spring 中,我们可以使用 `MockMvc` 工具进行单元测试,模拟 HTTP 请求并验证响应结果。 6. **实战案例** - 创建一个简单的...

    Spring mvc 教程

    - **使用@Controller 注解定义一个控制器**:通过这个注解可以将类标记为一个控制器,Spring 会自动检测并将其纳入管理。 - **使用@RequestMapping 注解映射请求路径**:此注解用于指定控制器处理的具体 URL 路径...

    Spring MVC非注解测试

    非注解测试在Spring MVC中是指不依赖于Java注解如`@Test`,`@Controller`等进行的测试,而是通过XML配置文件来定义组件和它们之间的关系。这种方式虽然比注解方式繁琐,但有助于理解Spring MVC的工作原理。 首先,...

    spring MVC简单示例

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建模型-视图-控制器(Model-View-Controller)架构的应用程序提供了强有力的支持。在本示例中,我们将深入探讨Spring MVC的基本概念、配置以及如何创建一个...

    spring mvc 3_demo

    Spring MVC提供`MockMvc`类用于对控制器进行单元测试,模拟HTTP请求并验证响应。 这个"Spring MVC 3_demo"项目是学习和理解Spring MVC 3中注解驱动开发的绝佳起点。通过实践这些概念,你可以更深入地了解Spring ...

    spring mvc demo加用户模块的

    9. **测试**:为了保证代码质量,项目可能包含单元测试和集成测试,使用JUnit、Mockito等工具对用户模块的功能进行验证。 通过这个“spring mvc demo加用户模块的”项目,开发者可以学习如何组织Spring MVC的项目...

    Spring+Spring MVC+Spring JDBC+MySql实现简单登录注册

    7. **测试**:`test`目录可能包含了项目的单元测试和集成测试,确保各个组件的正确性。例如,可以使用JUnit测试用户服务类的注册和登录功能。 8. **IDE相关文件**:`.classpath`、`.mymetadata`、`.project`、`....

Global site tag (gtag.js) - Google Analytics