Angular 2+ : simuler un Pipe personnalisé pour les tests unitaires
Posted on: 18 février 2019 /
Categories: Général
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/