我一直试图窥探控制器中定义的方法,如下所示:
describe('My Controller', function(){
var controller;
beforeEach(module('MyModule'));
beforeEach(inject(function($controller){
controller = $controller('MyCtrl');
}));
it('My func should been called', function(){
spyOn(controller, 'myFunc');
expect(controller.myFunc).toHaveBeenCalled();
});
});
这是我的控制器
(function () {
'use strict';
angular
.module('MyModule')
.controller('MyCtrl', ControllerFn);
function ControllerFn(){
var vm = this;
vm.myFunc= myFunc;
function myFunc(){
console.log("it's been called");
}
}
})();
但业力测试失败了。我一直在做错什么?
编辑:我只需为控制器添加一个函数调用,并且工作正常!
我的阻止应该是:
it('My func should been called', function(){
spyOn(controller, 'myFunc');
controller.myFunc(); // Simpy call to my func
expect(controller.myFunc).toHaveBeenCalled();
});