So fügen Sie beim Komponententest einen Controller in eine Direktive ein
Ich möchte eine so deklarierte AngularJS-Direktive testen
app.directive('myCustomer', function() {
return {
template: 'cust.html'
controller: 'customerController'
};
});
Im Test möchte ich den Controller einspeisen (oder überschreiben), damit ich nur die anderen Teile der Direktive (z. B. das Template) testen kann. DascustomerController
kann natürlich auch einzeln getestet werden. Auf diese Weise bekomme ich eine saubere Trennung der Tests.
customController
mit$provide
.Ich habe versucht, Einstellungen vorzunehmenng-controller
auf der HTML-Direktivendeklaration im Test verwendet.Ich konnte keine davon zum Arbeiten bringen. Das Problem scheint zu sein, dass ich erst dann einen Verweis auf die Richtlinie bekommen kann, wenn ich einen habe$compile
d es. Nach dem Übersetzen ist die Steuerung jedoch bereits eingerichtet.
var element = $compile("<my-customer></my-customer>")($rootScope);