Jak wprowadzić kontroler do dyrektywy podczas testowania jednostkowego
Chcę przetestować dyrektywę AngularJS zadeklarowaną w ten sposób
app.directive('myCustomer', function() {
return {
template: 'cust.html'
controller: 'customerController'
};
});
W teście chciałbym wstrzyknąć (lub zastąpić) kontroler, aby móc przetestować tylko inne części dyrektywy (np. Szablon). ThecustomerController
można oczywiście testować oddzielnie. W ten sposób otrzymuję czysty rozdział testów.
customController
za pomocą$provide
.Próbowałem ustawieniang-controller
na deklaracji dyrektywy html użytej w teście.Nie mogłem zmusić żadnego z nich do pracy. Problemem wydaje się być to, że nie mogę uzyskać odniesienia do dyrektywy, dopóki nie będę mieć$compile
d to. Ale po kompilacji kontroler jest już skonfigurowany.
var element = $compile("<my-customer></my-customer>")($rootScope);