写在前面
上一篇文章我们进行了用户注册的持久层开发,这篇文章我们进行用户注册-持久层单元测试开发
用户注册-持久层单元测试
每个层编写完毕后,都要对其进行单元测试,用来测试当前的功能,我们先在src/test/java/com/cy/store目录下新建一个软件包,命名为mapper,再在mapper目录下新建一个UserMapperTests类,编写代码如下:
@SpringBootTest注解表示当前的类是一个测试类,测试类不参与打包@RunWith需要手动引入,表示这个单元测试类可以启动,不然是不能运行的@Autowired会有报错信息:无法自动装配,找不到Bean。这个报错怎么去掉呢?只需要 文件-设置-编辑器-检查-Spring-Spring Core-代码-自动装配Bean类,将他的严重程度改成“警告”即可
package com.cy.store.mapper;
import com.cy.store.entity.User;
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.test.context.junit4.SpringRunner;
@SpringBootTest
@RunWith(SpringRunner.class)
public class UserMapperTests {
@Autowired
private UserMapper userMapper;
/**
* 单元测试方法可以独立运行(不用启动整个项目,提升代码测试效率)的前提:
* 1、@Test注解
* 2、返回值必须为void
* 3、参数不指定任何类型
* 4、访问修饰符必须是public
*/
@Test
public void insert(){
User user = new User();
user.setUsername("dj");
user.setPassword("123");
Integer rows = userMapper.insert(user);
System.out.println(rows);
}
}
然后我们运行insert(),他会调用userMapper的insert()方法,并且传入一个User对象,User对象的username为“dj”,password为“123”,userMapper的insert()方法又会执行插入用户的SQL语句,运行之后控制台会打印出rows的值为1,此时我们再去查看数据库,可以看到t_user表中多了一条记录:
然后是第二个方法findByUsername()的单元测试,代码如下:
@Test
public void findByUsername(){
User user = userMapper.findByUsername("dj");
System.out.println(user);
}
运行findByUsername()方法后,控制台打印内容为:User{uid=3, username='dj', password='123', salt='null', phone='null', email='null', gender=null, avatar='null', isDelete=null},测试通过
写在最后
以上就是用户注册-持久层单元测试开发的全部内容