Ich habe einen Dienst, den ich versuche, Unit-Test, aber ich kann nicht zu den Funktionen im Dienst, die nur für dieses Modul privat sein sollen. Um es zu testen und auszuspionieren, muss ich diese Funktion anderen Modulen zugänglich machen. Ich fühle, dass dies den Zweck der Einkapselung vereitelt und ein Kodierungs-No-No ist.How to Encapsulate AngularJS Funktionen, aber immer noch es testbar
Diese vier Funktionen sind zum Beispiel Hilfsfunktionen und werden von keinem anderen Modul als dem, in dem sie sich befinden, verwendet. Es ist absolut sinnlos, sie in das 'vm'-Objekt einzufügen, das als' dieses 'instanziiert wird "für die Konvention. Dies macht es anderen zu verwendenden Modulen zugänglich. Ich will das nicht. Wenn meine Tests jedoch nicht erfolgreich sind, können meine Jasmintests nicht darauf zugreifen. :
So ist die Lösung, die alle Funktionen, die ich an alle meine anderen Module testen wollen aussetzen, so dass sie Einheit dort getestet werden kann, oder ist eine Art, wie ich diese Variablen aus meinen Tests zugreifen können, ohne auszusetzen sie zu allem.
Ah okay Gotcha, ich missverstanden Unit-Tests dann. Ich dachte, es testet jede einzelne Funktion separat als "Einheit" – MatTaNg
Einheit bedeutet, dass Tests atomar sein sollten, so dass jeder Test einen einzigen Aspekt abdecken sollte. Wenn Sie also eine Funktion haben, die einen Wert setzt und beispielsweise eine andere externe Funktion aufruft, sollten Sie zwei verschiedene Tests implementieren – quirimmo