Я смотрю пример TODO MVC AngularJS, и я вижу, что приложение определяется как модуль.Модуль Тестирование Модульный контроллер AngularJS
var todomvc = angular.module('todomvc', []);
Внутри контроллеров, я вижу их определяется как:
todomvc.controller('TodoCtrl', function TodoCtrl($scope, $location, todoStorage, filterFilter) {
//...
});
Мой вопрос касается модульного тестирования ... как я могу написать модульный тест для этого класса?
Я пытался что-то вроде:
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
});
});
});
... но затем «контроллер» заканчивает тем, что нуль или не определено.
Нужно ли мне изменить приложение TODO MVC, чтобы функция передавалась todomvc.controller() не является анонимной?
Любое направление будет оценено по мере того, как я очень новичок в Angular.
Я проверить это, спасибо! – arthurakay
Этот пример очень помогает ... но я все равно получаю ошибку «TodoCtrl is not defined», что заставляет меня думать, что мне нужно изменить способ написания контроллера в примере TODO MVC (что больше напоминает пример, который вы связали). Но я на правильном пути, спасибо! – arthurakay
После дополнительной проверки, я должен использовать «scope.addTodo()» вместо «ctrl.addTodo()» после использования вашего предложения. Благодаря! – arthurakay