【问题标题】:Writing a jasmine test spec to a javascript closure function将 jasmine 测试规范写入 javascript 闭包函数
【发布时间】:2014-06-12 08:43:09
【问题描述】:

我在一个封闭在一个闭包中的视图中有一个 Javascript 函数。闭包返回一个同名的函数,并且还有一些助手。这是方法的结构。

this.myMethod = (function () {

    function helperMethod(){
        ....
        return true;
    }
    return function myMethod(args){
        helperMethod();
        manipulate();
    }
}

我的问题是如何为此方法编写 Jasmine 单元测试规范。如何调用此方法?

在这种情况下使用默认的方法方式不起作用,因为它是匿名的。

var view = new myView();

    view.myMethod();

    expect ( true ).toBeTruthy();

请在这方面提供帮助。我是 Jasmine 框架的初学者。

【问题讨论】:

  • 更具体地说,我想测试方法'helperMethod',它不是由闭包函数直接调用,而是传递给外部例程并从外部方法有条件地调用。它作为闭包函数的参数传递。因此我无法测试内部函数,因为在测试闭包函数时我会模拟外部函数(这里是 myMethod )。

标签: javascript unit-testing closures jasmine anonymous-function


【解决方案1】:

通过关闭helperMethod 函数,您的规范无法访问它,因此您将无法直接对其进行测试。您可以通过现有的公共接口 (myMethod) 间接测试它,也可以通过某种方式从闭包中提取 helperMethod 以使其可公开访问,这可以作为视图上的原型方法,或者只是在this,或者完全不同的辅助对象上。

【讨论】:

    猜你喜欢
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多