Archive for : février, 2019

post image

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/