统一身份认证系统之单元测试【5】

单元测试

新增用户管理数据库操作接口【SysUserDao.java】,分别添加列表查询、新增、修改、批量删除接口

package com.dc.mapper;

import com.dc.base.pojo.QueryParams;
import com.dc.pojo.SysUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SysUserDao {
    List<SysUser> selectUser(QueryParams queryParams);

    int insertUser(SysUser user);

    int updateUser(SysUser user);

    int removeUserInUserIds(@Param("userIds") String userIds);
    
    int deleteUserInUserIds(@Param("userIds") String userIds);
}

新增SysUserDao对应的Mapper.xml【SysUserMapper.xml】

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dc.mapper.SysUserDao">

    <select id="selectUser" resultType="com.dc.pojo.SysUser" parameterType="com.dc.base.pojo.QueryParams">
        select * from t_sys_user where is_deleted=0
        <if test="where != null and where!=''">and ${where}</if>
        order by
        <if test="order != null">${order}</if>
        account asc
    </select>

    <insert id="insertUser" parameterType="com.dc.pojo.SysUser" keyProperty="user_id" useGeneratedKeys="true">
        insert into t_sys_user
        (account,password,name,phone,head_img_url,state,create_user_id,create_user_name,create_time
        ,is_deleted,address,email,birthday,version,sex,memo)
        values
        (#{account},#{password},#{name},#{phone},#{head_img_url},1,#{create_user_id},#{create_user_name}
        ,now(),0,#{address},#{email},#{birthday},0,#{sex},#{memo})
    </insert>

    <update id="updateUser" parameterType="com.dc.pojo.SysUser">
        update t_sys_user set
        version=version+1
        ,update_user_id=#{update_user_id}
        ,update_user_name=#{create_user_name}
        ,update_time=now()
        <if test="account != null and account!=''">
            ,account=#{account}
        </if>
        <if test="name!=null and name!=''">
            ,name=#{name}
        </if>
        <if test="password!=null and password!=''">
            ,password=#{password}
        </if>
        <if test="memo!=null">
            ,memo=#{memo}
        </if>
        <if test="head_img_url!=null and head_img_url!=''">
            ,head_img_url=#{head_img_url}
        </if>
        <if test="phone!=null">
            ,phone=#{phone}
        </if>

        <if test="email!=null">
            ,email=#{email}
        </if>
        <if test="address!=null">
            ,address=#{email}
        </if>
        <if test="birthday!=null">
            ,birthday=#{birthday}
        </if>
        <if test="sex!=null">
            ,sex=#{sex}
        </if>
        where user_id=#{user_id} and is_deleted=0
    </update>

    <update id="removeUserInUserIds" parameterType="string">
    update t_sys_user set is_deleted=1 where is_deleted=0 and user_id in(${userIds})
</update>
    <delete id="deleteUserInUserIds" parameterType="string">
    delete  from t_sys_user  where  user_id in(${userIds})
</delete>
</mapper>


新增测试service层接口【DemoUserService.java】

package com.dc.service;

import com.dc.base.pojo.BaseModel;
import com.dc.pojo.SysUser;

public interface DemoUserService {
    void selectUserAll(BaseModel baseModel)throws Exception;

    void selectPageUser(BaseModel baseModel)throws Exception;

    void insertUser(SysUser user, BaseModel baseModel) throws Exception;

    void updateUser(SysUser user, BaseModel baseModel) throws Exception;

    void deleteUser(String ids, BaseModel baseModel) throws Exception;

    void removeUser(String ids, BaseModel baseModel) throws Exception;
}

新增测试Service接口实现类【DemoUserServiceImpl.java】

package com.dc.service.impl;

import com.dc.base.pojo.BaseModel;
import com.dc.mapper.SysUserDao;
import com.dc.pojo.SysUser;
import com.dc.service.DemoUserService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author Enzo
 * @Description 用户管理业务层接口实现
 * @date 2018-12-1 10:31
 */
@Service
public class DemoUserServiceImpl implements DemoUserService {
    @Autowired
    private SysUserDao userDao;

    /**
     * @return void
     * @title:<h3> 查询全部用户信息<h3>
     * @author: Enzo
     * @date: 2018-12-1 10:31
     * @params [baseModel]
     **/
    public void selectUserAll(BaseModel baseModel) throws Exception {
        List<SysUser> list = userDao.selectUser(baseModel.getQueryParams());
        baseModel.setData(list);
        baseModel.setMessage("查询全部用户信息成功");
    }

    /**
     * @return void
     * @title:<h3> 分页查询用户信息 <h3>
     * @author: Enzo
     * @date: 2018-12-1 10:32
     * @params [baseModel]
     **/
    public void selectPageUser(BaseModel baseModel) throws Exception {
        PageHelper.startPage(baseModel.getQueryParams().getCurr_page(), baseModel.getQueryParams().getPage_size());
        List<SysUser> list = userDao.selectUser(baseModel.getQueryParams());
        baseModel.setData(new PageInfo(list));
        baseModel.setMessage("分页查询用户信息成功");
    }

    /**
     * @return void
     * @title:<h3> 新增用户信息 <h3>
     * @author: Enzo
     * @date: 2018-12-1 10:32
     * @params [user, baseModel]
     **/
    public void insertUser(SysUser user, BaseModel baseModel) throws Exception {
        int count = userDao.insertUser(user);
        if (count == 0) {
            baseModel.setMessage("新增用户信息失败");
        } else {
            baseModel.setMessage("新增用户成功");
        }

    }

    /**
     * @return void
     * @title:<h3> 修改用户信息 <h3>
     * @author: Enzo
     * @date: 2018-12-1 10:32
     * @params [user, baseModel]
     **/
    public void updateUser(SysUser user, BaseModel baseModel) throws Exception {
        int count = userDao.updateUser(user);
        if (count == 0) {
            baseModel.setMessage("修改用户信息失败");
        } else {
            baseModel.setMessage("修改用户成功");
        }
    }

    /**
     * @return void
     * @title:<h3> 批量删除用户信息(物理删除) <h3>
     * @author: Enzo
     * @date: 2018-12-1 10:32
     * @params [ids, baseModel]
     **/
    public void deleteUser(String ids, BaseModel baseModel) throws Exception {
        int count = userDao.removeUserInUserIds(ids);
        if (count == 0) {
            baseModel.setMessage("删除用户信息失败");
        } else {
            baseModel.setMessage("删除" + count + "条用户信息成功");
        }
    }

    /**
     * @return void
     * @title:<h3> 批量删除用户信息(逻辑删除) <h3>
     * @author: Enzo
     * @date: 2018-12-1 10:48
     * @params [ids, baseModel]
     **/
    public void removeUser(String ids, BaseModel baseModel) throws Exception {
        int count = userDao.removeUserInUserIds(ids);
        if (count == 0) {
            baseModel.setMessage("删除用户信息失败");
        } else {
            baseModel.setMessage("删除" + count + "条用户信息成功");
        }
    }
}


添加测试单元测试类【DemoUserTest.java】,测试用户增删改查的业务

package com.dc.test;

import com.alibaba.fastjson.JSON;
import com.dc.base.pojo.BaseModel;
import com.dc.pojo.SysUser;
import com.dc.service.DemoUserService;
import org.apache.log4j.Logger;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.Date;

/**
 * @author Enzo
 * @Description 单元测试
 * @date 2018-12-1 10:51
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-mybatis.xml")
public class DemoUserTest {
    private Logger log = Logger.getLogger(DemoUserTest.class);
    @Autowired
    private DemoUserService demoUserService;
    private BaseModel baseModel = new BaseModel();
    private SysUser user = new SysUser();

    @Test
    public void selectUserAll() throws Exception {
        demoUserService.selectUserAll(baseModel);
        log.info(JSON.toJSONString(baseModel));
    }

    @Test
    public void selectPageUser() throws Exception {
        demoUserService.selectPageUser(baseModel);
        log.info(JSON.toJSONString(baseModel));
    }
    @Test
    public void inserUser() throws Exception {
        user.setAccount("test_" + new Date().getTime());
        user.setName("测试用户新增");
        demoUserService.insertUser(user, baseModel);
        log.info(JSON.toJSONString(baseModel));
        log.info("新增用户的id为:"+user.getUser_id());
    }
    @Test
    public void updateUser() throws Exception {
        user.setUser_id(111);
        user.setAccount("test_" + new Date().getTime());
        user.setName("测试用户修改");
        demoUserService.updateUser(user, baseModel);
        log.info(JSON.toJSONString(baseModel));
    }
    @Test
    public void deleteUserInUserIds() throws Exception {
        demoUserService.deleteUser("111",baseModel);
        log.info(JSON.toJSONString(baseModel));
    }
    @Test
    public void removeUserInUserIds() throws Exception {
        demoUserService.removeUser("111",baseModel);
        log.info(JSON.toJSONString(baseModel));
    }
}


右击运行测试方法,查看运行结果,查看控制台打印出sql语句和响应数据
在这里插入图片描述

添加controller测试类【DemoUserController.java】

package com.dc.controller;

import com.dc.base.controller.BaseController;
import com.dc.base.pojo.BaseModel;
import com.dc.pojo.SysUser;
import com.dc.service.DemoUserService;
import com.wordnik.swagger.annotations.ApiImplicitParam;
import com.wordnik.swagger.annotations.ApiImplicitParams;
import com.wordnik.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.ws.rs.HttpMethod;

/**
 * @author Enzo
 * @Description 测试controller
 * @date 2018-11-30 10:59
 */
@Controller
@RequestMapping("demo")
public class DemoUserController extends BaseController {
    @Autowired
    private DemoUserService userService;


    @ApiOperation(value = "查询所有用户信息", notes = "查询所有用户信息", httpMethod = HttpMethod.GET,response = SysUser.class)
    @RequestMapping("selectUserAll")
    public BaseModel selectUserAll(BaseModel baseModel) throws Exception {
        userService.selectUserAll(baseModel);
        return baseModel;
    }

    /**
     * @return com.dc.base.pojo.BaseModel
     * @title:<h3>分页查询用户信息 <h3>
     * @author: Enzo
     * @date: 2018-8-24 9:21
     * @params [baseModel]
     **/
    @ApiOperation(value = "分页查询用户", notes = "分页查询用户信息", httpMethod = HttpMethod.POST,response = SysUser.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "baseModel.queryParams.curr_page", value = "当前页", paramType = "query", dataType = "int"),
            @ApiImplicitParam(name = "baseModel.queryParams.page_size", value = "每页显示的记录数", paramType = "query", dataType = "int")
    })
    @RequestMapping("selectPageUser")
    public BaseModel selectPageUserVo(BaseModel baseModel) throws Exception {
        userService.selectPageUser(baseModel);
        return baseModel;
    }

    /**
     * @return com.dc.base.pojo.BaseModel
     * @title:<h3> 新增用户 <h3>
     * @author: Enzo
     * @date: 2018-8-24 9:21
     * @params [userVo, baseModel]
     **/
    @ApiOperation(value = "新增用户", notes = "新增用户信息", httpMethod = HttpMethod.POST,response = SysUser.class)
    @RequestMapping("insertUser")
    public BaseModel insertUserVo(@ModelAttribute SysUser user, BaseModel baseModel) throws Exception {
        userService.insertUser(user, baseModel);
        return baseModel;
    }

    /**
     * @return com.dc.base.pojo.BaseModel
     * @title:<h3> 修改用户信息 <h3>
     * @author: Enzo
     * @date: 2018-8-24 9:53
     * @params [userVo, baseModel]
     **/
    @ApiOperation(value = "修改用户", notes = "修改用户信息", httpMethod = HttpMethod.POST,response = SysUser.class)
    @RequestMapping("updateUser")
    public BaseModel updateUserVo(@ModelAttribute SysUser user, BaseModel baseModel) throws Exception {
        userService.updateUser(user, baseModel);
        return baseModel;
    }


    /**
     * @return com.dc.base.pojo.BaseModel
     * @title:<h3>根据用户id查询用户信息 <h3>
     * @author: Enzo
     * @date: 2018-8-24 9:51
     * @params [ids, baseModel]
     **/
    @ApiOperation(value = "根据用户id删除用户信息", notes = "根据用户id删除用户信息", httpMethod = HttpMethod.DELETE)
    @RequestMapping("deleteUser/{ids}")
    public BaseModel deleteUser(@PathVariable("ids") String ids, BaseModel baseModel) throws Exception {
        userService.deleteUser(ids, baseModel);
        return baseModel;
    }


}

在tomcat下部署项目,访问swagger API文档
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值