Blick auf einige JS Unit Testing mit Jasmin, innerhalb eines describe-Suite habe ich den folgenden Code gefunden:Dependency Injection in Angularjs mit beforeEach (inject (function (...) {..}));
describe("suiteName", function() {
var $controller;
beforeEach(inject(function(_$controller_) {
$controller = _$controller_;
}));
describe(....);
describe(....);
});
innerhalb der inneren beschreibt, wird die Variable $controller
irgendwann innerhalb einiger spec it
zu „binden“ verwendet Controller Felder Referenzen:
$controller('controllerUniqueName', {
controllerField1: reference1,
controllerField2: reference2,
...
}
ich gehe davon aus, dass inject(..)
eine Dependency Injection tut, sagt _$controller_
in globale Variable $controller
und beforeEach
Injektion nur um es zu tun, bevor jedes s Pecs it
in jeder Beschreibungs-Suite, die folgt.
Kann jemand erklären, wie die Abhängigkeitsinjektion gelöst wird?
Insbesondere, was _$controller_
entspricht für die Zuordnung $controller = _$controller_;
?
BEARBEITEN 1: Wenn ich den Injektionsblock entferne, schlägt der Komponententest mit der Nachricht TypeError: $controller is not a function
fehl.
** EDIT 2: ** wenn ich _controller_
in something
Unit-Test ändern schlägt mit Meldung Error: [$injector:unpr] Unknown provider: $somethingProvider <- $something