我正在尝试使用Jasmine spyOn来调用angularjs控制器函数。我一直收到以下错误:
submit()方法不存在。
为了让它起作用,我错过了什么?
describe('myCtrler', function() {
beforeEach(module('myModule'));
var scope,ctrl;
beforeEach(inject(function($rootScope, $controller) {
scope = $rootScope.$new();
spyOn(scope, "submit");
ctrl = $controller('myCtrler', {
$scope: scope
});
}));
it('controller defined', inject(function() {
expect(ctrl).toBeDefined();
}));
it('controller function', function() {
expect(submit).toBeDefined();
});
});
angular.module('myModule').controller('myCtrler',function($scope){
var vm = this;
vm.submit = function() {
};
});
答案 0 :(得分:1)
根据您错过将方法绑定到范围的问题。所以你需要做如下。希望能帮助到你。
it('controller function', function() {
expect(ctrl.submit).toBeDefined();
});