Unit-Test d'un Composant

La méthode TestBed.createComponent instancie le composant dont le type est transmis en paramètre puis retourne un objet ComponentFixture permettant de contrôler et inspecter le composant.

Les principales propriétés et méthodes de cette classe sont les suivantes :

  • componentInstance : l'instance de la classe BookPreviewComponent,

  • debugElement : objet permettant d'inspecter et de manipuler le DOM.

  • detectChanges() : déclenche la Change Detection.

import { async, fakeAsync, TestBed } from '@angular/core/testing';
import { Book } from './app/book/book';
import { BookPreviewComponent } from './app/book/book-preview/book-preview.component';
import { BookModule } from './app/book/book.module';

describe('BookPreviewComponent', () => {

    beforeEach(async(() => {

        TestBed.configureTestingModule({
            imports: [
                BookModule
            ]
        }).compileComponents();

    }));

    it('should show book info', fakeAsync(() => {

        const fixture = TestBed.createComponent(BookPreviewComponent);
        const component = fixture.componentInstance;
        const debugElement = fixture.debugElement;

        component.book = new Book({
            title: 'eXtreme Programming Explained'
        });

        fixture.detectChanges();

        expect(debugElement.nativeElement.querySelector('h1').textContent)
            .toEqual('eXtreme Programming Explained');

    }));

});

Dernière mise à jour