Comment se moquer angulaire traduire filtre dans les tests unitaires pour les directives
Dans mon directive modèles, j'ai besoin d'utiliser l'angle de traduire filtre en tant que tel:
<label for="data-source-btn">
<span id="data-source-btn-span"></span>
{{'Data Source' | translate}}
</label>
Ensuite dans mon test de l'unité de la présente directive, j'obtiens l'erreur:
Inconnu fournisseur de: translateFilterProvider <- translateFilter
J'ai essayé d'injecter $filter
et se $translate
par $translate = $filter('translate');
qui ne résout pas le problème - c'est vraiment pour tester le filtre
Je peux injecter le module pascalprecht.translate
, mais c'est du lourd. Comment puis-je mieux se moquer du filtre?
Vous devez vous connecter pour publier un commentaire.
Ci-dessous est un exemple simple de la façon dont vous pouvez simuler le filtre.
Failed to instantiate module app.translate due to: Unknown provider: $translateProvider
.C'est de travailler pour moi. Mais bien sûr, vous devez définir mockTraslateFilter valeur de la fonction bewfore vous permettra de l'utiliser dans un autre d'une fonction.
encore plus courte, si vous utilisez ES6:
C'est l'ES6 façon:
Ce n'est pas se moquer de l' $translate.méthode instantanée. Pour cela, vous pouvez assigner la fonction à une variable, puis attribuer angulaire.l'identité de la méthode de la
instant
de la propriété.