单元测试
新增用户管理数据库操作接口【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文档