使用MockMvc对springboot的restful controller进行单元测试

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
  
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值