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.

Ich habe versucht, den Controller zu überschreiben, indem ich die Controller-Eigenschaft im Test festgelegt habe.Ich habe versucht das zu spritzencustomController 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$compiled es. Nach dem Übersetzen ist die Steuerung jedoch bereits eingerichtet.

 var element = $compile("<my-customer></my-customer>")($rootScope);

Antworten auf die Frage(2)

Ihre Antwort auf die Frage