【问题标题】:jasmine: using function with a dot in the name茉莉花:使用名称中带点的函数
【发布时间】:2012-09-25 18:06:30
【问题描述】:

我正在测试一个使用其他 js 文件中的函数的 js 函数。

我的一个外部 js 文件有一个这样定义的函数:

functionname.functionextension = function () {.....}

在使用 jasmine 进行测试并调用 functionname.functionextension 时,它会抱怨 functionname 未定义。我认为它认为 functionname 是一个对象..

我知道解决此问题的一种方法是修改函数名称,但我不能这样做。有没有其他办法?

谢谢

【问题讨论】:

    标签: javascript ruby-on-rails testing jasmine


    【解决方案1】:

    在 javascript 中,所有函数都是对象。在外部的js文件中,函数大概是这样定义的:

    var functionname = functionname || {};
    
    functionname.functionextension = function () {
        ...
    };
    

    如果您收到未定义 functionname 的脚本错误,则外部 javascript 中存在错误,或者您没有调用外部脚本设置其对象所需的某些初始化函数。

    【讨论】:

    • 嗯.. 我明白了。这是有道理的,我只能看到它被定义为 var functionname= {} 的一个地方。我在 jasmine 测试的顶部这样做以重现,但我收到错误“Object # has no method functionextension”
    【解决方案2】:

    它对我有用...你需要在调用时按其全名调用函数,例如 functionname.functionextension()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 2017-09-18
      • 1970-01-01
      • 2013-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多