springmvc controller junit 测试

目录

第一次搭建SSM框架,整合SpringMVC完成后进行Controller测试,找资料并解决问题。

下图是我的完整目录:

回到顶部

1 建立UserController类

代码清单 1-1:UserController.java

package org.sei.controller;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import org.sei.pojo.User;
import org.sei.service.UserService;

@Controller
@RequestMapping("/user")
public class UserController
{
    @Resource
    private UserService userService;

    @RequestMapping("/showUser1")
    public String toIndex(HttpServletRequest request,Model model)
    {
        int userId = Integer.parseInt(request.getParameter("id"));
        User user = this.userService.getUserById(userId);
        model.addAttribute("user", user);
        return user.getUserName();
    }

    @RequestMapping("/showUser3")
    public String toIndex1(User u,Model model)  //注意:参数不同
    {
        int userId = u.getId();
        User user = this.userService.getUserById(userId);
        model.addAttribute("user", user);
        return user.getUserName();
    }

}

回到顶部

2 建立测试类

代码清单 2-1:MockTestController.java

package org.sei.testmybatis;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
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.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring-mybatis.xml","classpath:spring-mvc.xml"})

@WebAppConfiguration
public class  MockTestController
{
   protected MockMvc mockMvc;

   @Autowired
   protected WebApplicationContext wac;

   @Before()  //这个方法在每个方法执行之前都会执行一遍
   public void setup()
   {
       mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();  //初始化MockMvc对象
   }

   @Test
   public void getAllCategoryTest() throws Exception
   {
       String responseString = mockMvc.perform
           (
               get("/user/showUser1")          //请求的url,请求的方法是get
               //get("/user/showUser2")          //请求的url,请求的方法是get
               .contentType(MediaType.APPLICATION_FORM_URLENCODED)//数据的格式
               .param("id","1")   //添加参数(可以添加多个)
               //.param("id","3")   //添加参数(可以添加多个)
           )
           .andExpect(status().isOk())    //返回的状态是200
           .andDo(print())         //打印出请求和相应的内容
           .andReturn().getResponse().getContentAsString();   //将相应的数据转换为字符串
       System.out.println("-----返回的json = " + responseString);
   }

}

回到顶部

3 JUnit测试

  • 测试的数据库表如下:

  • 测试1:参数(HttpServletRequest request,Model model)

  • 测试2:参数(User u,Model model)

回到顶部

4 几个jar包

很多问题都来自于确少jar包。

下面给出几个jar包的Maven依赖:

代码清单 4-1:pom.xml (局部)

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
        <!-- 映入JSON -->
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.13</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.8.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.8.3</version>
        </dependency>

来源:https://www.cnblogs.com/oucbl/p/5943743.html

原文地址:https://www.cnblogs.com/kongxc/p/8910205.html

时间: 2024-11-09 02:44:14

springmvc controller junit 测试的相关文章

利用junit对springMVC的Controller进行测试

本文转自http://www.tuicool.com/articles/7rMziy 平时对junit测试service/DAO层已经很熟悉不过了,如果不了解,可以猛戳这里,但是我们要测试controller层,不能总重启服务器吧,(重启tomcat好慢的飘过,别...别走啊),那么我们就用junit4模拟请求,测试controller层的方法. 代码1:直接Controller调用方法 import static org.junit.Assert.*; import java.sql.SQLE

Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法

一.单元测试的目的 简单来说就是在我们增加或者改动一些代码以后对所有逻辑的一个检测,尤其是在我们后期修改后(不论是增加新功能,修改bug),都可以做到重新测试的工作.以减少我们在发布的时候出现更过甚至是出现之前解决了的问题再次重现. 这里主要是使用MockMvc对我们的系统的Controller进行单元测试. 对数据库的操作使用事务实现回滚,及对数据库的增删改方法结束后将会还远数据库. 二.MockMvc的使用 1.首先我们上一个例子, import org.apache.commons.log

使用MockMvc测试SpringMVC Controller

MockMvc 是springTest提供的对SpringMvc提供的测试工具.这样可以让单元测试不仅仅局限于对Dao和Service 层的测试.同时,也可以测试Controller层.丰富的单元测试的功能.测试时不用频繁重启servlet容器,简化了测试操作. MockMvc需要ServletContext来模拟用户的请求和相应. 首选,需要在测试类头部添加一下Annotation @WebAppConfiguration @RunWith(SpringJUnit4ClassRunner.cl

搭建项目Maven+springMVC+hibernate时,JUnit测试出现报ClassNotFoundException错误的解决

最近在搭建Maven+springMVC+hibernate项目,正常启动项目时一切正常,但JUNIT测试时出现报ClassNotFoundException错误,经过仔细排查发现没有生成class文件. 现在解决如下:

SpringMVC是用junit测试

架包支持:junit.jar;org.springframework.test-3.1.0.RELEASE.jar 测试Dao基础类:JUnitDaoBase Java代码   package test.test; import javax.annotation.Resource; import javax.sql.DataSource; import org.junit.runner.RunWith; import org.springframework.test.context.Contex

maven+springMVC+mybatis+junit详细搭建过程 【转】

springMVC+mybatis框架搭建 首先我们先要弄清搭建项目的一般流程,需要注意哪些方面,想要什么样的效果,自己的功能有哪些? (假设效果:项目目录结构清晰,能够查询到本地数据库中的内容..) 1.  工程目录结构整理清楚 在src/main/java文件夹中,新建包cn.springmvc.model(存放javabean), cn.springmvc.dao(存放spring与mybatis连接接口), cn.springmvc.service(service接口), cn.spri

maven+springMVC+mybatis+junit详细搭建过程

springMVC+mybatis框架搭建 首先我们先要弄清搭建项目的一般流程,需要注意哪些方面,想要什么样的效果,自己的功能有哪些? (假设效果:项目目录结构清晰,能够查询到本地数据库中的内容..) 1.  工程目录结构整理清楚 在src/main/java文件夹中,新建包cn.springmvc.model(存放javabean), cn.springmvc.dao(存放spring与mybatis连接接口), cn.springmvc.service(service接口), cn.spri

原:maven+springMVC+mybatis+junit详细搭建过程

阅读目录 1.  工程目录结构整理清楚 2.  引入依赖包 3. 配置数据库连接属性 4.  配置spring配置文件 5.  java代码编写(model,dao,service层代码) 6.  mybatis配置 7.  junit测试插入功能 8.  springMVC模块搭建 9.  log4j日志记录搭建 10.  测试运行 整体包下载地址: springMVC+mybatis框架搭建 首先我们先要弄清搭建项目的一般流程,需要注意哪些方面,想要什么样的效果,自己的功能有哪些? (假设效

002杰信-陌生的maven-web项目整改成我们熟悉的Web架构;classpath的含义;ssm框架的整合;junit测试

这篇博客的资源来源于创智播客,先在此申明.这篇博客的出发点是jk项目,传智的做法是Maven的web模板生成的,但是这样子的结构目录与我们熟知的Web项目的结构目录相差很大,所以要按照我们熟知的项目结构来.这篇文章涉及到的最重要的是:1.加载各种配置文件时经常涉及到classpath,这个东西,要搞搞清楚,在web项目代表的是什么( WEB-INF文件夹下的classes目录).2.还有就是做一个项目时,建包的目录,3.用junit去测试框架的整合. 传智的做法是Maven的web模板生成的: