TODO MVC 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
});
});
});
...しかし、「コントローラー」はnullまたは未定義になります。
todomvc.controller()に渡される関数が匿名にならないように、TODO MVC アプリを変更する必要がありますか?
私はAngularに非常に慣れていないので、どんな方向性でもありがたいです。