Ich habe JavaScript im Kontext von AngularJS geschrieben. Mein relevantes JavaScript sieht folgendermaßen aus:
%Vor%Ich versuche, diesen Code zu testen. Um den Code zu testen, benutze ich Jasmine.
%Vor%Ich kann mir nicht vorstellen, wie ich aus meinem Komponententest einige $ attrs injiziere. Wie mache ich das? Ich kann mein $ scope Setup erfolgreich bekommen. Allerdings verstehe ich nicht, wie man $ attrs injiziert. Gibt es etwas Besonderes, von dem ich nichts weiß? Ich habe ein ähnliches Problem mit $ element, obwohl dieses außerhalb des Kontexts dieses spezifischen Tests liegt.
Danke!
Hier ist ein Plünderer: Ссылка
Vielleicht gibt es eine bessere Lösung, aber das ist es, was ich habe.
$scope
ist leicht zu bekommen, du kannst $rootScope
überall einfügen $attrs
ist dagegen nur über die Variable $compile
verfügbar (sie lebt in compile.js ) Meine Lösung besteht darin, einen gefälschten Controller zu erstellen, zu kompilieren und ihn zu entführen. $attrs
.
In den neuesten Versionen von AngularJS muss ein Controller bereitgestellt werden, um volle $ attrs zu erhalten.
Siehe Dokumentation zu $ controllerProvider .
Siehe diesen AngularJS $ componentController Unit Test
Tags und Links angularjs unit-testing jasmine