初心者の Jasmine/Angular に関する質問です。
次のように、コントローラー内に名前付き関数があります。
.controller( 'DummyCtrl', function DummyCtrl($scope){
var doSomething = function() {
return "blah";
};
})
この関数をテストする必要があり、次の Jasmine 仕様を呼び出すことによって試みています。
describe ('myApp', function(){
var $scope, $controller;
var DummyCtrl;
beforeEach(module('myApp'));
describe('controllers', function(){
beforeEach(inject(function ($controller, $rootScope){
$scope = $rootScope.$new();
DummyCtrl = $controller('DummyCtrl', {$scope: $scope});
}));
describe( 'DummyCtrl', function(){
var blah;
beforeEach(function(){
blah = DummyCtrl.doSomething();
});
it('should do something', function(){
expect(blah).toContain("blah");
});
});
});
});
うまくいく代わりに、次のエラーが発生しますTypeError: Object #<DummyCtrl> has no method 'doSomething'
。これは、私が理解していない非常に単純なものだと思います。