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/