Wir brauchen das enthaltene Modul, damit wir es testen können. module
ist eine Funktion, die von der angular-mocks.js
zur Verfügung gestellt wird. Wenn Sie es mit einem Modulnamen als Parameter aufrufen, wird dieses Modul geladen.
inject
ist eine andere Methode, die uns von angular-mocks.js
zur Verfügung gestellt wird. Es gibt uns Zugriff auf verschiedene Abhängigkeiten, die in unserer Datei deklariert sind. Nehmen Sie zum Beispiel den Code, den Sie gepostet haben, und rufen Sie die inject-Funktion mit einer Callback-Funktion auf, über die Sie auf die Abhängigkeiten zugreifen können, auf die Ihr Controller/Service usw. angewiesen ist. Nur innerhalb dieses Callbacks können Sie diese Abhängigkeiten bestimmten Variablen zuweisen und sie dann in Ihren Tests verwenden.
Da dies muss für jeden Test das heißt den it
Block durchgeführt werden, die Anrufe an module
und inject
Funktionen werden in einem beforeEach
Block platziert, wie es vor jedem it
Block genannt wird.
Auch seit Sie die inject
Funktion aufgerufen haben, gab es Ihnen Zugriff auf die serviceName
Abhängigkeit, die Sie irgendwo in Ihrem Test verwenden würden. Im Allgemeinen geben wir einen Servicenamen mit der Nummer _
an. Das ist nur, um sie mit den Variablen zu unterscheiden, die Sie in Ihren Tests für diese Dienste verwenden. $injector
entfernt die führende und nachfolgende _
beim Auflösen dieser Namen.
Hoffe das hilft Ihnen, die Tests zu verstehen, die Sie ein wenig besser schreiben.
Sie können mehr darüber lesen here