TioBootTest 类

简介

TioBootTest 类用于简化 JUnit 测试中的环境初始化和 AOP 配置。它通过提供简洁的 API,方便开发者在测试过程中加载环境、配置类以及处理 AOP 相关的依赖。例如,在进行与 MySQL 服务相关的业务测试时,只需通过 TioBootTest 类加载 MySQL 的配置类即可。

使用

方法

  1. load(String env)

    • 描述: 初始化指定名称的环境。如果未提供环境名称,它将从系统属性中获取默认环境。
    • 参数:
      • env (String): 要初始化的环境名称。如果为 null,方法将尝试从系统属性中检索环境名称。
    • 用法:
      • 该方法通常在 JUnit 测试的 @Before 部分调用,用于在运行测试之前设置所需的环境。
  2. runWith(Class<?>... classes)

    • 描述: 初始化默认环境,并处理指定类进行 AOP 配置。
    • 参数:
      • classes (Class<?>...): 需要进行 AOP 初始化的类。
    • 用法:
      • 当无需指定特定环境时,该方法非常有用,可以直接初始化类的 AOP 配置。
  3. runWith(String env, Class<?>... classes)

    • 描述: 与 runWith(Class<?>... classes) 类似,但允许指定要初始化的环境。
    • 参数:
      • env (String): 环境名称。
      • classes (Class<?>...): 需要进行 AOP 配置的类。
    • 用法:
      • 该方法允许在指定环境的基础上对给定类进行 AOP 配置,提供更精细的测试环境控制。
  4. 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 获取服务类 PenRawDataServicerunWith 方法用于加载测试环境,并确保在执行测试时,必要的配置和依赖已经正确初始化。