MockMvc简介
概述
MockMvc是由spring-boot-starter-test包提供,MockMvc实现了对http请求的模拟,能够直接使用网络的形式,转换到Controller层的调用,可以使得对Controller层的单元测试更加方便且不依赖网络环境,另外还提供了一套验证的工具,可以对请求结果进行统一验证.
详情: mockMvc介绍
项目构建
springboot项目初始化:略
controller层
package com.hangzhou.springboot.restful.web.controller;
import com.hangzhou.springboot.restful.dto.AddressDTO;
import com.hangzhou.springboot.restful.dto.UserDTO;
import com.hangzhou.springboot.restful.service.AddressService;
import com.hangzhou.springboot.restful.service.UserService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.ws.rs.QueryParam;
import java.util.List;
@RestController()
public class UserResource {
@Resource
private UserService userService;
@Resource
private AddressService addressService;
/**
* 添加用户
* @param userDTO
* @return
*/
@PostMapping("/users")
public UserDTO createUser(@RequestBody UserDTO userDTO){
return userService.createUser(userDTO);
}
/**
* 编辑用户
* @param userDTO
* @return
*/
@PutMapping("/users")
public UserDTO updateUser(@RequestBody UserDTO userDTO){
return userService.updateUser(userDTO);
}
/**
* 根据用户id查询用户
* @param userId
* @return
*/
@GetMapping("/users/{user_id}")
public UserDTO getUserById(@PathVariable("user_id") Long userId){
return userService.getUserById(userId);
}
/**
* 查询用户列表
* @param pageNo
* @param pageSize
* @return
*/
@GetMapping("/users")
public List<UserDTO> listUsers(@QueryParam("pageNo") Integer pageNo,@QueryParam("pageSize")Integer pageSize){
return userService.listUsers(pageNo,pageSize);
}
/**
* 删除用户
* @param userId
* @return
*/
@DeleteMapping("/users/{user_id}")
public Boolean deleteUser(@PathVariable("user_id") Long userId){
return userService.deleteUser(userId);
}
/**
* 用户添加地址信息
* @param userId
* @param addressDTO
* @return
*/
@PostMapping("/users/{user_id}/addresss")
public AddressDTO createAddress(@PathVariable("user_id") Long userId, AddressDTO addressDTO){
return addressService.createAddress(userId,addressDTO);
}
/**
* 查询用户的某一个地址详情
* @param userId
* @param addressId