@tsdi/unit
Version:
unit testing framework, base on AOP, Ioc container
227 lines (226 loc) • 4.24 kB
TypeScript
import { Token } from '@tsdi/ioc';
/**
* test case.
*
* @export
* @interface ITestCase
*/
export interface ICaseDescribe {
/**
* case title.
*
* @type {string}
* @memberof ICaseDescribe
*/
title: string;
/**
* test case method name.
*
* @type {string}
* @memberof ICaseDescribe
*/
key: string;
/**
* old test fn.
*
* @type {Function}
* @memberof ICaseDescribe
*/
fn?: Function;
/**
* case order
*
* @type {number}
* @memberof ICaseDescribe
*/
order?: number;
/**
* case test time out.
*
* @type {number}
* @memberof ICaseDescribe
*/
timeout?: number;
/**
* case test throwed error.
*
* @type {Error}
* @memberof ICaseDescribe
*/
error?: Error;
/**
* case start test at.
*
* @type {number}
* @memberof ICaseDescribe
*/
start?: number;
/**
* case end test at.
*
* @type {number}
* @memberof ICaseDescribe
*/
end?: number;
}
/**
* suite hook for old unit test.
*
* @export
* @interface ISuiteHook
*/
export interface ISuiteHook {
fn: Function;
/**
* case test time out.
*
* @type {number}
* @memberof ICaseDescribe
*/
timeout?: number;
}
/**
* suite.
*
* @export
* @interface ISuite
*/
export interface ISuiteDescribe {
/**
* suite describe.
*
* @type {string}
* @memberof ISuiteDescribe
*/
describe: string;
/**
* suite cases.
*
* @type {ICaseDescribe[]}
* @memberof ISuiteDescribe
*/
cases: ICaseDescribe[];
/**
* suite test timeout.
*
* @type {number}
* @memberof ISuiteDescribe
*/
timeout?: number;
/**
* suite test start time.
*
* @type {number}
* @memberof ISuiteDescribe
*/
start?: number;
/**
* suite test end time.
*
* @type {number}
* @memberof ISuiteDescribe
*/
end?: number;
/**
* suite before hook for old unit test.
*
* @type {ISuiteHook[]}
* @memberof ISuiteDescribe
*/
before?: ISuiteHook[];
/**
* suite beforeEach hook for old unit test.
*
* @type {ISuiteHook[]}
* @memberof ISuiteDescribe
*/
beforeEach?: ISuiteHook[];
/**
* suite after hook for old unit test.
*
* @type {ISuiteHook[]}
* @memberof ISuiteDescribe
*/
after?: ISuiteHook[];
/**
* suite afterEach hook for old unit test.
*
* @type {ISuiteHook[]}
* @memberof ISuiteDescribe
*/
afterEach?: ISuiteHook[];
}
/**
* report
*
* @export
* @interface ITestReport
*/
export interface ITestReport {
/**
* suites.
*
* @type {Map<Token, ISuiteDescribe>}
* @memberof ITestReport
*/
suites: Map<Token, ISuiteDescribe>;
/**
* add suite.
*
* @param {Token} suit
* @param {ISuiteDescribe} describe
* @memberof ITestReport
*/
addSuite(suit: Token, describe: ISuiteDescribe): any;
/**
* get suite.
*
* @param {Token} suit
* @returns {ISuiteDescribe}
* @memberof ITestReport
*/
getSuite(suit: Token): ISuiteDescribe;
/**
* set suite completed.
*
* @param {Token} suit
* @memberof ITestReport
*/
setSuiteCompleted(suit: Token): any;
/**
* add case.
*
* @param {Token} suit
* @param {ICaseDescribe} testCase
* @memberof ITestReport
*/
addCase(suit: Token, testCase: ICaseDescribe): any;
/**
* get case.
*
* @param {Token} suit
* @param {string} test
* @returns {ICaseDescribe}
* @memberof ITestReport
*/
getCase(suit: Token, test: string): ICaseDescribe;
/**
* set case completed.
*
* @param {ICaseDescribe} testCase
* @memberof ITestReport
*/
setCaseCompleted(testCase: ICaseDescribe): any;
/**
* track error.
* @param error
*/
track(error: Error): any;
/**
* report.
*
* @returns {Promise<void>}
* @memberof ITestReport
*/
report(): Promise<void>;
}