Wie zum Hohn angular übersetzen-filter in unit-tests für Richtlinien
In meinem Richtlinie Vorlagen, ich muss an das eckige übersetzen filter als solche:
<label for="data-source-btn">
<span id="data-source-btn-span"></span>
{{'Data Source' | translate}}
</label>
Dann in meinem unit-test für diese Richtlinie, bekomme ich die Fehlermeldung:
Unbekannte Anbieter: translateFilterProvider <- translateFilter
Habe ich versucht, die Injektion $filter
und immer $translate
durch $translate = $filter('translate');
was aber das problem nicht lösen - das ist wirklich für die Prüfung der filter
Ich kann Spritzen das Modul pascalprecht.translate
, aber das ist ungeschickt. Wie kann ich am besten verspotten den filter?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unten ist ein einfaches Beispiel, wie man mit mock-filter.
Failed to instantiate module app.translate due to: Unknown provider: $translateProvider
.Dies ist für mich arbeiten. Aber natürlich sollten Sie mockTraslateFilter Wert auf Funktion bewfore verwenden Sie es in einem anderen funciton.
sogar noch kürzer, wenn Sie ES6:
Dies ist das ES6 Weg:
Diese nicht verhöhnen die $übersetzen.instant-Methode. Für diese könnten Sie weisen die Funktion auf eine variable, und weisen Sie dann den Winkel.Identität-Methode, um die
instant
Eigenschaft.