将jasmine测试规范写入javascript闭包函数

时间:2014-06-12 08:43:09

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

我在视图中有一个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 Framework的初学者。

1 个答案:

答案 0 :(得分:1)

通过关闭helperMethod功能,您已使其无法访问您的规格,因此您无法直接测试它。您可以通过遍历现有公共接口(myMethod)或通过以某种方式从闭包中提取helperMethod来间接测试它以使其可以公开访问,这可以作为原型方法在查看,或仅在this,或完全不同的辅助对象。