|
| 1 | +# TioBootTest 类 |
| 2 | + |
| 3 | +#### 概览 |
| 4 | + |
| 5 | +`TioBootTest` 类便于初始化和配置 JUnit 测试的环境,它简化了设置属性和初始化 AOP 相关方面的过程。比如你只需要再 junit 中测试和 mysql 相关服务相关的业务只需要使用 TioBootTest 类加载 mysql 的配置类即可 |
| 6 | + |
| 7 | +#### 方法 |
| 8 | + |
| 9 | +1. **before(String env)** |
| 10 | + |
| 11 | + - **描述**: 用指定的名称初始化环境。如果没有提供环境名称,它会从系统属性中获取默认环境。 |
| 12 | + - **参数**: |
| 13 | + - `env` (String): 要初始化的环境的名称。如果为 `null`,方法尝试从系统属性中检索环境名称。 |
| 14 | + - **用法**: |
| 15 | + - 这个方法通常在 JUnit 测试的 `@Before` 部分调用,以便在运行测试之前设置必要的环境。 |
| 16 | + |
| 17 | +2. **before(Class<?>... classes)** |
| 18 | + |
| 19 | + - **描述**: 初始化默认环境并处理提供的类以进行 AOP。 |
| 20 | + - **参数**: |
| 21 | + - `classes` (Class<?>...): 要处理以进行 AOP 初始化的类。 |
| 22 | + - **用法**: |
| 23 | + - 当您需要在不指定特定环境的情况下初始化 AOP 的特定类时很有用。 |
| 24 | + |
| 25 | +3. **before(String env, Class<?>... classes)** |
| 26 | + |
| 27 | + - **描述**: 类似于 `before(Class<?>... classes)`,但允许指定环境。 |
| 28 | + - **参数**: |
| 29 | + - `env` (String): 环境的名称。 |
| 30 | + - `classes` (Class<?>...): 要处理以进行 AOP 初始化的类。 |
| 31 | + - **用法**: |
| 32 | + - 通过初始化指定的环境并为 AOP 准备给定的类,提供更全面的设置。 |
| 33 | + |
| 34 | +4. **scan(Class<?>... primarySources)** |
| 35 | + - **描述**: 扫描给定的主要来源,初始化默认环境,并处理扫描的类以进行 AOP。 |
| 36 | + - **参数**: |
| 37 | + - `primarySources` (Class<?>...): 要扫描和处理的主要来源。 |
| 38 | + - **抛出**: |
| 39 | + - 如果在扫描和初始化过程中发生任何错误,则抛出 `Exception`。 |
| 40 | + - **用法**: |
| 41 | + - 一个更高级的方法,通常在需要扫描除默认设置之外的额外类或包时使用。 |
| 42 | + |
| 43 | +#### JUnit 测试中的示例用法 |
| 44 | + |
| 45 | +连接测试环境的数据库进行数据插入 |
| 46 | + |
| 47 | +```java |
| 48 | +import org.junit.Before; |
| 49 | +import org.junit.Test; |
| 50 | +import com.enoleap.manglang.pen.api.server.config.ActiveRecordPluginConfiguration; |
| 51 | +import com.jfinal.kit.Kv; |
| 52 | +import com.litongjava.jfinal.aop.Aop; |
| 53 | +import com.litongjava.tio.boot.tesing.TioBootTest; |
| 54 | + |
| 55 | +public class PenRawDataServiceTest { |
| 56 | + |
| 57 | + @Before |
| 58 | + public void before() { |
| 59 | + // 初始化测试环境并为 AOP 准备 ActiveRecordPluginConfiguration 类 |
| 60 | + TioBootTest.before("test", ActiveRecordPluginConfiguration.class); |
| 61 | + } |
| 62 | + |
| 63 | + @Test |
| 64 | + public void test() { |
| 65 | + Kv kv = Kv.create(); |
| 66 | + kv.set("page_no", 1); |
| 67 | + kv.set("page_size", 2); |
| 68 | + kv.set("user_id", "18374686479682812677"); |
| 69 | + kv.set("payload_ts", 0); |
| 70 | + kv.set("payload_ts_op", "ge"); |
| 71 | + |
| 72 | + byte[] page = Aop.get(PenRawDataService.class).page(kv); |
| 73 | + |
| 74 | + System.out.println(page.length); |
| 75 | + } |
| 76 | +} |
| 77 | +``` |
| 78 | + |
| 79 | +此示例展示了如何使用 `TioBootTest` 类为名为 `PenRawDataService` 的服务准备测试环境。`before` 方法设置了 `ActiveRecordPluginConfiguration` 的环境和 AOP,确保测试在必要的配置和依赖项下运行。 |
0 commit comments