Clean and Dry your Angular unit tests.
Angular built with great testing tools for unit tests, but its flexibility introduces a lot of redundant code when project's components/services grow. @angeeks/testing aims to provide cleaner ways to write specs for most of common patterns with minimum efforts. And then, we can get more time for another cup of tea ๐ต, cheers.
import { TestBed, async } from '@angular/core/testing';
import { TediousComponent } from './tedious.component';
descirbe('handtypeed, emotional, typo prone spec title..', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
TediousComponent
],
}).compileComponents();
}));
// frequent used test pattern
it('should create the app', async(() => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
}));
// frequent used test pattern
it(`should have as title 'ngk'`, async(() => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance;
expect(app.title).toEqual('ngk');
}));
});
import { ComponentSuite as Component } from '@angeeks/testing';
import { TediousComponent as Subject } from './tedious.component';
Component.suite<Subject>(Subject, (spec) => {
spec.init();
spec.expectProperty('title', 'ngk');
});
And the report will be like:
ngk-root
โ should be created (68ms)
โ has .title to equal "ngk" (44ms)
npm i -D @angeeks/testing
- Subject for the spec
- callback for jasmine describe, with spec instance keep common variables
Same like fdescribe