Ich schaue mir das TODO MVC AngularJS Beispiel, und ich sehe die Anwendung als ein Modul definiert ist.Unit Tests AngularJS-Modul-Controller
var todomvc = angular.module('todomvc', []);
Innerhalb der Controller, ich sehe sie wie folgt definiert:
todomvc.controller('TodoCtrl', function TodoCtrl($scope, $location, todoStorage, filterFilter) {
//...
});
Meine Frage beschäftigt sich mit Prüfeinheit ... wie kann ich einen Komponententest für diese Klasse schreiben?
Ich habe versucht, Dinge wie:
describe('TodoCtrl', function() {
var controller;
beforeEach(function() {
controller = todomvc.TodoCtrl;
});
afterEach(function() {
controller = null;
});
describe('addTodo() method', function() {
console.log(controller)
it('should do something', function() {
expect(typeof controller.addTodo).toBe(true); //should fail
});
});
});
... aber dann "Controller" endet null oder nicht definiert ist.
Muss ich die TODO MVC App so ändern, dass die an übergebene Funktion todomvc.controller() nicht anonym ist?
Jede Richtung würde geschätzt werden, da ich Angular sehr neu bin.
Ich werde das überprüfen, danke! – arthurakay
Dieses Beispiel hilft sehr ... aber ich bekomme immer noch einen "TodoCtrl ist nicht definiert" -Fehler, der mich denken lässt, dass ich die Art und Weise ändern muss, in der der Controller im TODO MVC Beispiel geschrieben wird das Beispiel, das Sie verknüpft haben). Aber ich bin auf dem richtigen Weg, danke! – arthurakay
Bei weiterer Überprüfung muss ich "scope.addTodo()" anstelle von "ctrl.addTodo()" verwenden, nachdem ich Ihren Vorschlag verwendet habe. Vielen Dank! – arthurakay