TioBootTest 类
概览
TioBootTest
类便于初始化和配置 JUnit 测试的环境,它简化了设置属性和初始化 AOP 相关方面的过程。比如你只需要再 junit 中测试和 mysql 相关服务相关的业务只需要使用 TioBootTest 类加载 mysql 的配置类即可
方法
before(String env)
- 描述: 用指定的名称初始化环境。如果没有提供环境名称,它会从系统属性中获取默认环境。
- 参数:
env
(String): 要初始化的环境的名称。如果为null
,方法尝试从系统属性中检索环境名称。
- 用法:
- 这个方法通常在 JUnit 测试的
@Before
部分调用,以便在运行测试之前设置必要的环境。
- 这个方法通常在 JUnit 测试的
before(Class<?>... classes)
- 描述: 初始化默认环境并处理提供的类以进行 AOP。
- 参数:
classes
(Class<?>...): 要处理以进行 AOP 初始化的类。
- 用法:
- 当您需要在不指定特定环境的情况下初始化 AOP 的特定类时很有用。
before(String env, Class<?>... classes)
- 描述: 类似于
before(Class<?>... classes)
,但允许指定环境。 - 参数:
env
(String): 环境的名称。classes
(Class<?>...): 要处理以进行 AOP 初始化的类。
- 用法:
- 通过初始化指定的环境并为 AOP 准备给定的类,提供更全面的设置。
- 描述: 类似于
scan(Class<?>... primarySources)
- 描述: 扫描给定的主要来源,初始化默认环境,并处理扫描的类以进行 AOP。
- 参数:
primarySources
(Class<?>...): 要扫描和处理的主要来源。
- 抛出:
- 如果在扫描和初始化过程中发生任何错误,则抛出
Exception
。
- 如果在扫描和初始化过程中发生任何错误,则抛出
- 用法:
- 一个更高级的方法,通常在需要扫描除默认设置之外的额外类或包时使用。
JUnit 测试中的示例用法
连接测试环境的数据库进行数据插入
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.tesing.TioBootTest;
public class PenRawDataServiceTest {
@BeforeClass
public void beforeClass() {
// 初始化测试环境并为 AOP 准备 ActiveRecordPluginConfiguration 类
TioBootTest.before("test", ActiveRecordPluginConfiguration.class);
}
@Test
public void test() {
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
类为名为 PenRawDataService
的服务准备测试环境。before
方法设置了 ActiveRecordPluginConfiguration
的环境和 AOP,确保测试在必要的配置和依赖项下运行。