Neat Paraskavedekatriaphobia's Meaning

    @angeeks/testing
    TypeScript icon, indicating that this package has built-in type declarations

    1.1.0 • Public • Published

    Testing

    Build Status npm version

    Clean and Dry your Angular unit tests.

    Why this?

    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.

    spec from official guide

    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');
      }));
    });
    

    With @angeeks/testing

    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)
    

    Installation

      npm i -D @angeeks/testing
    

    APIs

    Suite.on(Subject, callback: (spec: Suite) => {})

    Suite.suite(Subject, callback: (spec: Suite) => {})

    • Subject for the spec
    • callback for jasmine describe, with spec instance keep common variables

    Suite.fon(Subject, callback: (spec: Suite) => {})

    Suite.fsuite(Subject, callback: (spec: Suite) => {})

    Same like fdescribe

    Install

    npm i @angeeks/testing

    DownloadsWeekly Downloads

    8

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    151 kB

    Total Files

    26

    Last publish

    Collaborators

    • speed.of.light