TioBootTest 类

概览

TioBootTest 类便于初始化和配置 JUnit 测试的环境,它简化了设置属性和初始化 AOP 相关方面的过程。比如你只需要再 junit 中测试和 mysql 相关服务相关的业务只需要使用 TioBootTest 类加载 mysql 的配置类即可

方法

  1. before(String env)

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

    • 描述: 初始化默认环境并处理提供的类以进行 AOP。
    • 参数:
      • classes (Class<?>...): 要处理以进行 AOP 初始化的类。
    • 用法:
      • 当您需要在不指定特定环境的情况下初始化 AOP 的特定类时很有用。
  3. before(String env, Class<?>... classes)

    • 描述: 类似于 before(Class<?>... classes),但允许指定环境。
    • 参数:
      • env (String): 环境的名称。
      • classes (Class<?>...): 要处理以进行 AOP 初始化的类。
    • 用法:
      • 通过初始化指定的环境并为 AOP 准备给定的类,提供更全面的设置。
  4. 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,确保测试在必要的配置和依赖项下运行。