潘志宝
2024-11-21 70079bd0772207e88414176f5ca9edb3dd4bd236
提交 | 用户 | 时间
e7c126 1 package com.iailab.framework.test.core.ut;
H 2
3 import com.iailab.framework.datasource.config.IailabDataSourceAutoConfiguration;
4 import com.iailab.framework.mybatis.config.IailabMybatisAutoConfiguration;
5 import com.iailab.framework.test.config.SqlInitializationTestConfiguration;
6 import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
7 import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration;
8 import com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration;
9 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
10 import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
11 import org.springframework.boot.test.context.SpringBootTest;
12 import org.springframework.context.annotation.Import;
13 import org.springframework.test.context.ActiveProfiles;
14 import org.springframework.test.context.jdbc.Sql;
15
16 /**
17  * 依赖内存 DB 的单元测试
18  *
19  * 注意,Service 层同样适用。对于 Service 层的单元测试,我们针对自己模块的 Mapper 走的是 H2 内存数据库,针对别的模块的 Service 走的是 Mock 方法
20  *
21  * @author iailab
22  */
23 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbUnitTest.Application.class)
24 @ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件
25 @Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB
26 public class BaseDbUnitTest {
27
28     @Import({
29             // DB 配置类
30             IailabDataSourceAutoConfiguration.class, // 自己的 DB 配置类
31             DataSourceAutoConfiguration.class, // Spring DB 自动配置类
32             DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类
33             DruidDataSourceAutoConfigure.class, // Druid 自动配置类
34             SqlInitializationTestConfiguration.class, // SQL 初始化
35             // MyBatis 配置类
36             IailabMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类
37             MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类
38             MybatisPlusJoinAutoConfiguration.class, // MyBatis 的Join配置类
39     })
40     public static class Application {
41     }
42
43 }