我怎么断言用jasmine调用内部函数?

时间:2014-08-18 15:13:41

标签: javascript jasmine

我的应用程序中有一个带有javascript的类样式声明,我需要测试一个内部方法被调用。

结构是这样的......

angular.module("MyApp").factory('myClass', ['$rootScope', function (rootScope) {


    function active(type) {
        //how do I see if this method was called if cleartools public method is called?
    }


    return {
        active: active,
        clearActives: function() {
            active('');
        }
    }

}]);

如果调用clearActives(),如何调用函数active()?

1 个答案:

答案 0 :(得分:0)

您可以通过检查调用者函数名称来执行此操作,这需要您命名函数

function active(type) {
    var callerName = arguments.callee.caller.name;
    if(callerName == "clearActives") {
        //do something
    }
}
return {
    active: active,
                  //Names the function
    clearActives: function clearActives() {
        active('');
    }
}

JSFiddle demo