通常我们的后端项目中都离不开数据库的使用,然而在编写测试用例的时候却不是很好处理,这个时候,我们可以利用TestContainer来进行数据库的测试支持,这里使用我熟悉的MySQL。
一、引入依赖
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<version>1.12.0</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mysql</artifactId>
<version>1.12.0</version>
<scope>test</scope>
</dependency>
其中mybatis是我这里用到的一个持久层框架,大家根据自己的需要配置
二、使用testcontainer启动mysql
使用testcontainer启动mysql有两种方式:
- 使用注解@ClassRule / @Rule
- 使用特殊的url连接
首先,我们写出公用的代码,如下:
User类:
package com.firewolf.utils.testcontainer.mysql;
import lombok.Data;
@Data
public class User {
private Integer id;
private String name;
private Integer age;
}
UserMapper接口:
package com.firewolf.utils.testcontainer.mysql;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface UserMapper {
@Select("select * from user")
List<User> findUser();
}