码迷,mamicode.com
首页 > 编程语言 > 详细

SpringBoot16 MockMvc的使用

时间:2018-05-06 00:10:34      阅读:383      评论:0      收藏:0      [点我收藏+]

标签:contex   tor   ext   his   isp   汇总   wired   password   ring   

 

1 MockMvc的使用

  1.1 创建一个SpringBoot项目

    项目脚手架

  1.2 创建一个用户实体类

技术分享图片
package cn.test.demo.base_demo.entity.po;

import java.util.Date;

/**
 * @author 王杨帅
 * @create 2018-05-05 22:03
 * @desc 用户实体类
 **/
public class User {
    private Integer userId;
    private String userName;
    private String password;
    private Date birthday;

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
}
User.java

  1.3 创建一个用户控制类

技术分享图片
package cn.test.demo.base_demo.controller;

import cn.test.demo.base_demo.entity.po.User;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 王杨帅
 * @create 2018-05-05 22:02
 * @desc 用户模块控制层
 **/
@RestController
@RequestMapping(value = "/user")
public class UserController {

    @GetMapping
    public List<User> queryList() {
        List<User> userList = new ArrayList<>();
        userList.add(new User());
        userList.add(new User());
        userList.add(new User());
        return userList;
    }

}
UserController.java

  1.4 创建一个测试类

    该测试类主要测试用户控制类中的相关方法

    1.4.1 引入测试类注解以及日志注解

@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j

    1.4.2 依赖注入WebApplicationContext

    @Autowired
    private WebApplicationContext wac;

    1.4.3 实例化MockMvc

    private MockMvc mockMvc;

    @Before
    public void setup() {
        mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
    }

    1.4.4 利用MockMvc对象模拟HTTP请求

    @Test
    public void queryList() throws Exception {
        String result = mockMvc.perform(
                    MockMvcRequestBuilders.get("/user")
                    .contentType(MediaType.APPLICATION_JSON_UTF8)
                )
                .andExpect(MockMvcResultMatchers.status().isOk())
                .andReturn().getResponse().getContentAsString();
        log.info("===/" + className + "/queryList===" + result);
    }

    1.4.5 测试类代码汇总

技术分享图片
package cn.test.demo.base_demo.controller;

import lombok.extern.slf4j.Slf4j;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MockMvcBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;

import static org.junit.Assert.*;

@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class UserControllerTest {

    private final String className = getClass().getName();

    @Autowired
    private WebApplicationContext wac;

    private MockMvc mockMvc;

    @Before
    public void setup() {
        mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
    }

    @Test
    public void queryList() throws Exception {
        String result = mockMvc.perform(
                    MockMvcRequestBuilders.get("/user")
                    .contentType(MediaType.APPLICATION_JSON_UTF8)
                )
                .andExpect(MockMvcResultMatchers.status().isOk())
                .andReturn().getResponse().getContentAsString();
        log.info("===/" + className + "/queryList===" + result);
    }

}
View Code

 

未完待续

 

SpringBoot16 MockMvc的使用

标签:contex   tor   ext   his   isp   汇总   wired   password   ring   

原文地址:https://www.cnblogs.com/NeverCtrl-C/p/8996564.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!