基于Springboot进行单元测试

linlin2127 / 2023-07-30 / 原文

1.在api模块的pom.xml中添加spring-boot-starter-test依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.4.4</version>
        </dependency>

2.在fmmall父工程的pom.xml中添加junit依赖

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>

3.在beans子工程下创建User实体类

package com.linlin.fmmall.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int userId;
    private String username;
    private String userRealName;
    private String userImg;
}

4.在mapper子工程下创建UserDao接口和UserMapper.xml

package com.linlin.fmmall.dao;

import com.linlin.fmmall.entity.User;

public interface UserDao {
    public User queryUserByName(String name);
}
<?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.linlin.fmmall.dao.UserDao">

    <resultMap id="userMap" type="User">
        <id column="user_id" property="userId"/>
        <result column="user_name" property="username"/>
        <result column="user_realname" property="userRealName"/>
        <result column="user_img" property="userImg"/>
    </resultMap>

    <select id="queryUserByName" resultMap="userMap">
        select * from users
        where user_name = #{name}
    </select>

</mapper>

5.在UserDao接口名上按shift+ctrl+t快捷键创建junit4单元测试类

@RunWith(SpringRunner.class)
@SpringBootTest(classes = ApiApplication.class)
public class UserDaoTest {

    @Resource
    private UserDao userDao;

    @Test
    public void queryUserByName() {
        User linlin = userDao.queryUserByName("linlin");
        System.out.println("linlin = " + linlin);
    }

上面的@SpringBootTest注解需要指定启动类,但是mapper模块没有启动类,所以单元测试统一拷贝在api工程的单元测试路径下

 6.执行单元测试