你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

springboot数据库访问单元测试

发布时间:2023-05-28

浏览次数:0

1.添加单元测试依赖

提供组件以支持单元测试。 组件集成了Junit、.等测试框架,可以方便快捷的进行单元测试。

Maven 依赖项:

pom.xml

组织..引导

-引导--测试

测试

2.编译单元测试类

在工程的test目录下,新建一个单元测试类,以3.7节.java为例,介绍如何对数据库访问进行单元测试。

待测类和负责单元测试的类的目录结构如右图所示:

intellij idea 数据库关系图_intellij idea 时序图_intellij idea mac

然后编译单元测试类的测试方法。 测试方法被标记为带有@Test 注释的单元测试。 因为是数据库访问的单元测试,所以建议在测试类中加上@注解,开启事务管理。 在单元测试的情况下intellij idea 数据库关系图,@注解会在每个单元测试方法执行完后执行数据回滚,防止单元测试数据污染数据库。

.java测试代码参考如下(实例限于篇幅没有测试.java中的所有方法):

.java

package com.test.cloud.demo.mapper;
 
import com.test.cloud.demo.vo.User;
import org.junit.Assert;
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.dao.DuplicateKeyException;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
 
@RunWith(SpringRunner.class)
@SpringBootTest
//开启数据回滚,避免污染数据库
@Transactional
public class UserMapperTest {
    @Autowired
    private UserMapper userMapper;
 
    @Test
    //测试方法的命名最好能描述需要测试的案例情况
    public void testInsertThenSuccessInserted() {
        User test = new User("123456", "testName", "男", "23");
        int count = userMapper.insert(test);
        //使用Assert断言来判断案例是否成功
        Assert.assertTrue(count == 1);
        User user = userMapper.select(test.getId());
        Assert.assertTrue(user.equals(test));
    }
     
    //异常测试
    @Test(expected = DuplicateKeyException.class)
    public void testInsertWhenUserExistThenReturnException() {
        User user1 = new User("147258", "testName", "男", "23");
        int count = userMapper.insert(user1);
        Assert.assertTrue(count == 1);
        userMapper.insert(user1);
    }
 
    @Test(expected = Exception.class)
    public void testInsertWhenIdIsNullThenReturnException() {
        User user = new User(null, "testName", "男", "23");
        userMapper.insert(user);
    }
 
    @Test
    public void testUpdateThenSuccessUpdated() {
        User user = new User("147258", "testName", "男", "23");
        userMapper.insert(user);
        user.setName("otherName");
        userMapper.update(user);
        User existUser = userMapper.select(user.getId());
        Assert.assertTrue(existUser.getName().equals(user.getName()));
    }
     
    //更多测试方法,测试方法要尽可能覆盖正反案例、异常逻辑等
}

3.执行单元测试

测试类编写完成后intellij idea 数据库关系图,以IDEA为例,选择要执行的测试方法或测试类,右键选择Run或Debug执行单元测试,如右图所示:

intellij idea mac_intellij idea 数据库关系图_intellij idea 时序图

笔记:

如有侵权请联系删除!

13262879759

微信二维码