Angular 2+ : simuler un Pipe personnalisé pour les tests unitaires

Avec Angular on peut être amené à écrire un pipe personnalisé pour remplir une fonction bien particulière.
Ceci peut amener des soucis lors de l’écriture des tests unitaires si ce pipe a des dépendances.

La solution simple est de mocker ce pipe dans votre fichier .spec.ts :

import {Pipe, PipeTransform} from '@angular/core';

@Pipe({name: 'myPipe'})
class MockPipe implements PipeTransform {
    transform(value: number): number {
        // blah blah
        return value;
    }
}

“myPipe” doit être remplacé par le nom de votre pipe tel qu’utilisé dans vos templates. Peu importe la valeur retournée par la fonction transform(), puisque c’est un mock !

Ensuite il faut ajout ce mock dans les déclarations du TestBed:

TestBed.configureTestingModule({
  declarations: [ MyComponentUnderTesting, MockPipe ]
})

Et voilà \o/

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.