TioBootTest 类
简介
TioBootTest
类用于简化 JUnit 测试中的环境初始化和 AOP 配置。它通过提供简洁的 API,方便开发者在测试过程中加载环境、配置类以及处理 AOP 相关的依赖。例如,在进行与 MySQL 服务相关的业务测试时,只需通过 TioBootTest
类加载 MySQL 的配置类即可。
使用
方法
load(String env)
- 描述: 初始化指定名称的环境。如果未提供环境名称,它将从系统属性中获取默认环境。
- 参数:
env
(String): 要初始化的环境名称。如果为null
,方法将尝试从系统属性中检索环境名称。
- 用法:
- 该方法通常在 JUnit 测试的
@Before
部分调用,用于在运行测试之前设置所需的环境。
- 该方法通常在 JUnit 测试的
runWith(Class<?>... classes)
- 描述: 初始化默认环境,并处理指定类进行 AOP 配置。
- 参数:
classes
(Class<?>...): 需要进行 AOP 初始化的类。
- 用法:
- 当无需指定特定环境时,该方法非常有用,可以直接初始化类的 AOP 配置。
runWith(String env, Class<?>... classes)
- 描述: 与
runWith(Class<?>... classes)
类似,但允许指定要初始化的环境。 - 参数:
env
(String): 环境名称。classes
(Class<?>...): 需要进行 AOP 配置的类。
- 用法:
- 该方法允许在指定环境的基础上对给定类进行 AOP 配置,提供更精细的测试环境控制。
- 描述: 与
run(Class<?>... primarySources)
- 描述: 扫描给定的主类,初始化默认环境,并对扫描的类进行 AOP 配置。
- 参数:
primarySources
(Class<?>...): 要扫描和处理的主类。
- 异常:
- 如果在扫描或初始化过程中发生错误,则抛出
Exception
。
- 如果在扫描或初始化过程中发生错误,则抛出
- 用法:
- 这是一个更高级的方法,适合在测试中需要额外扫描类或包时使用。
示例用法
以下是如何在测试中连接数据库并进行数据插入的示例:
import org.junit.Before;
import org.junit.Test;
import com.enoleap.manglang.pen.api.server.config.ActiveRecordPluginConfiguration;
import com.jfinal.kit.Kv;
import com.litongjava.jfinal.aop.Aop;
import com.litongjava.tio.boot.testing.TioBootTest;
public class PenRawDataServiceTest {
@Test
public void test() {
// 初始化测试环境并为 AOP 配置 ActiveRecordPluginConfiguration 类
TioBootTest.runWith("test", ActiveRecordPluginConfiguration.class);
Kv kv = Kv.create();
kv.set("page_no", 1);
kv.set("page_size", 2);
kv.set("user_id", "18374686479682812677");
kv.set("payload_ts", 0);
kv.set("payload_ts_op", "ge");
byte[] page = Aop.get(PenRawDataService.class).page(kv);
System.out.println(page.length);
}
}
上述示例展示了如何使用 TioBootTest
类在测试中初始化 ActiveRecordPluginConfiguration
,并通过 AOP 获取服务类 PenRawDataService
。runWith
方法用于加载测试环境,并确保在执行测试时,必要的配置和依赖已经正确初始化。