在函数内部测试私有方法(var)

时间:2013-09-08 06:03:19

标签: javascript jquery unit-testing angularjs jasmine

我是单元测试的新手,jasmine,我想知道我们是否可以测试函数内部的私有方法。这是我正在尝试做的代码片段

function thisIsTheFunction(...) {
    //Some Code

    var thisIsTheMethod = function () {
        //This Should be tested
    }

    //Someother Code
}

我知道我们可以测试thisIsTheFunction是否附加到this。但有没有办法测试该方法是否是私有的?

提前致谢!

1 个答案:

答案 0 :(得分:0)

如果你想测试thisIsTheMethod中代码的实际逻辑,那么你所能做的就是将该方法分离成一个单独的“公共”函数并将其作为自己的单元进行测试。 (请记住,如果你想在外部函数测试期间测试内部函数的逻辑,那么这是一个集成测试,而不是单元测试)

但是,如果你想测试外部函数相对于内部函数的行为,你可以采取的一种方法是允许调用者传递一个回调函数来实现thisIsTheMethod作为参数的一部分。这个问题的“构造函数”。

然后,这允许您“注入”您在测试函数中定义的回调,以便您可以测试thisIstheFunction如何在它应该调用thisIsTheMethod等方面的行为。