ssm controller层 junit单元测试

 

原文链接:https://www.cnblogs.com/oucbl/p/5943743.html

springmvc controller junit 测试

作者:blouc@qq.com
本文为作者原创,转载请注明出处:https://www.cnblogs.com/oucbl/p/5943743.html


 

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

下图是我的完整目录:

 

root

 

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测试

  • 测试的数据库表如下:

 

mysql table

 

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

 

test1

 

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

 

test2

 

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> 

参考:

1. Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法
2. 基于Spring MVC做单元测试(一)——使用Spring Test框架
3. junit 测试 springmvc controller
4. spring-mvc junit test

 
 
 
好文要顶  关注我 

 

转载于:https://www.cnblogs.com/libin6505/p/8384850.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值