跳转到内容

测试工具库

测试工具库提供了自动化测试所需的工具函数。参见自动化测试

测试用例

jc.test()

定义一个测试用例,通过调用传入的函数运行测试用例。

  • 函数签名
ts
type Callback = (expect: Expect) => Promise<void>;

function test(title: string, fn: Callback): void
function test(fn: Callback): void
  • 输入参数

    • title 测试用例名称
    • fn 运行测试用例的回调函数
  • 返回值:无

  • 代码示例

ts
// 初始化被测试对象
const obj = { id: 1 };

jc.test('测试用例一', async expect => {
    // 回调函数内部可定义多个断言函数expect
    expect('此断言会通过', obj).toEqual({ id: 1 });
    expect('此断言会失败', obj).not.toEqual({ id: 1 });
})
  • 断言类型
ts
expect (val: any)
expect (desc: string, val: any)
└── [.not]
    ├── .toEqual (val: any): void;
    └── .toBeGreaterThan (val: number | bigint): void;
    └── .toBeGreaterThanOrEqual (val: number | bigint): void;
    └── .toBeLessThan (val: number | bigint): void;
    └── .toBeLessThanOrEqual (val: number | bigint): void;
    └── .toBeTruthy (): void;
    └── .toBeFalsy (): void;
    └── .toBeCloseTo (val: number, precision?: number): void;
    └── .toMatch (val: RegExp | string): void;

生命周期钩子

jc.beforeAll()

在​​所有测试用例执行前仅运行一次​​,用于全局初始化操作。

  • 函数签名
ts
function beforeAll(callback: () => Promise<void>): void
  • 代码示例
ts
jc.beforeAll(async () => {
    jc.info('beforeAll()钩子执行')
})

jc.afterAll()

在​​所有测试用例执行后仅运行一次​​,用于全局清理和资源释放。

  • 函数签名
ts
function afterAll(callback: () => Promise<void>): void
  • 代码示例
ts
jc.afterAll(async () => {
    jc.info('afterAll()钩子执行')
})

jc.beforeEach()

在​​每个测试用例执行前运行​​,重置测试环境以确保用例独立性。

  • 函数签名
ts
function beforeEach(callback: () => Promise<void>): void
  • 代码示例
ts
jc.beforeEach(async () => {
    jc.info('beforeEach()钩子执行')
})

jc.afterEach()

在​​每个测试用例执行后运行​​,清理当前测试产生的副作用。

  • 函数签名
ts
function afterEach(callback: () => Promise<void>): void
  • 代码示例
ts
jc.afterEach(async () => {
    jc.info('afterEach()钩子执行')
})