用控制器理解间谍作为语法

时间:2016-03-08 17:01:01

标签: angularjs jasmine karma-runner karma-jasmine

我一直试图窥探控制器中定义的方法,如下所示:

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();
});

0 个答案:

没有答案