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/
