Javascript单元测试Jasmine / Unit Testing - 如何测试私有函数是否被调用?

时间:2011-01-05 12:34:28

标签: javascript unit-testing

我正在尝试查看 if 私有函数。最终我要去寻找在其中设置的变量。

我的javascript看起来像下面的函数和私有函数

mysamplefunction = function(item){

   /* figure out bla */       
   _myprivatefunction(item,bla)

}

_myprivatefunction = function(item, bla){


    /* do lots of exciting private things with item and bla */
}

Jasmine似乎期望以下语法..

 spyOn(mysamplefunction ,'_myprivatefunction');

然而,因为我们没有严格处理mysamplefunction的实例而且_myprivatefunction不是一个方法(它只是另一个类)我不知道如何让它工作?任何想法??

1 个答案:

答案 0 :(得分:1)

如果按照你的描述声明了这些函数,我希望:

spyOn(window, '_myprivatefunction');

工作。

如果函数在闭包内,则window必须变为类似

TopLvlHeir.2ndlvel.samplefunctionpkg.publicTesting

唯一的要求是它是一个包含_myprivatefunction属性的对象,例如firstArg[secondArg]是一个函数。