@tsdi/unit
v6.0.48
Published
unit testing framework, base on AOP, Ioc container
Downloads
34
Maintainers
Readme
packaged @tsdi/unit
This repo is for distribution on npm
. The source for this module is in the
main repo.
@tsdi/unit
: unit testing framework, base on AOP, Ioc container.
version 5+ of @ts-ioc/core
tsioc
Install
npm install @tsdi/unit
npm install @tsdi/unit-console
// in browser
npm install @tsdi/platform-browser
// in server
npm install @tsdi/platform-server
add extends modules
use unit
import { Suite, BeforeEach, UnitTest, Test, After, AfterEach Assert, Expect, ExpectToken } from '@tsdi/unit';
import { ConsoleReporter } from '@tsdi/unit-console';
import { PromiseUtil } from '@tsdi/core';
@Suite('Unit Test')
export class SuiteTest {
// testContainer: AnyApplicationBuilder;
@BeforeEach()
async initTest() {
console.log('---------beofre test-----------');
}
@Test('assert test timeout', 200)
testTimeout() {
console.log('--------assert test timeout------');
let def = PromiseUtil.defer();
setTimeout(() => {
def.resolve('out time do...')
}, 300)
return def.promise;
}
@Test('assert test in time', 200)
testInTime() {
console.log('--------assert test in time------');
let def = PromiseUtil.defer();
setTimeout(() => {
def.resolve('in time do...')
}, 100)
return def.promise;
}
@Test('assert test in time', 200)
testInTime(assert: Assert) {
console.log('--------assert test in time------');
let def = PromiseUtil.defer();
setTimeout(() => {
def.resolve('in time do...')
}, 100)
assert.strictEqual('0', 0);
return def.promise;
}
@Test('expect test')
async testEqural(@Inject(ExpectToken) expect: Expect) {
await expect('true').toBe(true);
}
@AfterEach()
clean(){
//clean each data.
}
@After()
destory(){
}
}
support old TDD BDD style unit test.
- TDD-style interface:
suite('Array', function() {
suite('#indexOf()', function() {
suiteSetup(function() {
});
test('should return -1 when not present', function() {
});
test('should return the index when present', function() {
});
suiteTeardown(function() {
});
});
});
- BDD-style interface:
describe('Array', function(){
describe('Array#indexOf()', function() {
it('should return -1 when not present', function() {
// ...
});
it('should return the index when present', function() {
// ...
});
});
});
custom run test code
- use runTest to run
// run Test
/**
* unit test.
*
* @export
* @param {(string | Type | (string | Type)[])} src test source.
* @param {(string | AppConfigure)} [config] test configure.
* @param {...LoadType[]} deps custom set unit test dependencies.
* @returns {Promise<any>}
*/
export function runTest(src: string | Type | (string | Type)[], config?: string | UnitTestConfigure, ...deps: LoadType[]): Promise<any>;
runTest(SuiteTest, {...}, ConsoleReporter);
- use boot application
import { BootApplication, DIModule, ConfigureRegister } from '@tsdi/boot';
import { UnitTest } from '@tsdi/unit';
BootApplication.run(UnitTestContext.parse({ module: UnitTest, deps: [ConsoleReporter], configures: [config, { src: src }] }))
use command run test code
tsdi test [test/**/*.ts]
tsdi test //default load test/**/*.ts
//or
tsdi test test/**/*.ts
- test result:
Documentation
Documentation is available on the
- @tsdi/ioc document.
- @tsdi/aop document.
- @tsdi/core document.
- @tsdi/boot document.
- @tsdi/components document.
- @tsdi/compiler document.
- @tsdi/activities document.
- @tsdi/pack document.
- @tsdi/typeorm-adapter document.
- @tsdi/unit document.
- @tsdi/unit-console document.
- @tsdi/cli document.
packages
@tsdi/cli @tsdi/ioc @tsdi/aop @tsdi/core @tsdi/boot @tsdi/components @tsdi/compiler @tsdi/activities @tsdi/pack @tsdi/typeorm-adapter @tsdi/unit @tsdi/unit-console
License
MIT © Houjun