测试工具库
测试工具库提供了自动化测试所需的工具函数。参见自动化测试。
测试用例
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()钩子执行')
})