Argument 'fn' ist keine Funktion, wenn Sie versuchen, einen Komponententest mit Jasmine und AngularJS durchzuführen

8

Ich versuche in meiner Angular-Anwendung einige Unit-Tests mit Jasmine zu machen, aber ich habe einige Fehler.

Fehler

%Vor%

Spezifikation

%Vor%

App.js

%Vor%

Ich benutze noch weder Yeoman noch Karma, denn dies ist meine erste Anwendung mit Angular.

Enthaltene Dateien

%Vor%     
Lucas_Santos 16.12.2014, 16:37
quelle

1 Antwort

15

Ich denke, dass Sie einfach ein Problem mit Ihrer Konfiguration für die Abhängigkeiten für die Tests haben. Ohne Karma weiß ich nicht, wie Sie die Tests durchführen, aber ich nehme an, Sie haben irgendwo eine Konfigurationsdatei für Jasmine, in der Sie die Dateien angeben, die enthalten sein sollen. Sie müssen alle Dateien einschließen und Sie müssen zuerst alle Bibliotheken einschließen. Seien Sie vorsichtig mit der Reihenfolge und versuchen Sie, das Gleiche zu respektieren wie in Ihrer HTML-Datei, die Sie zum Ausführen der Anwendung verwenden.

Wenn die Reihenfolge falsch ist, wird der JS versuchen, auszuführen, bevor die benötigten Bibliotheken enthalten sind. In deinem Fall vielleicht sogar den ganzen Winkelstapel.

Aktualisieren

Vergessen Sie nicht, dass Jasmine mit seiner eigenen HTML-Datei arbeitet und nicht die Bibliotheken enthält, die Sie normalerweise verwenden, wenn Sie es nicht sagen. Und vergessen Sie nicht, die für Ihre Tests notwendige Angular Mock-Bibliothek einzubinden.

Update 2

Ok ich glaube, ich habe herausgefunden, warum Sie ein Problem haben

In diesem Code stimmt etwas nicht

%Vor%

Wenn Sie beim Aufruf eines Moduls mit dem Modul ('sthg', []) erstellen , rufen Sie es nicht auf. Sie sollten stattdessen dieses Formular verwenden, es ist nicht notwendig, die Dienste neu zu importieren, die Sie bereits in Ihrem Hauptmodul enthalten haben.

%Vor%

Überprüfen Sie den Abschnitt Creating versus Retrieval in der eckigen Dokumentation Ссылка

    
sam 16.12.2014, 16:56
quelle

Tags und Links