如何在IIFE中测试私有方法,可能使用反射?

时间:2017-05-26 19:16:38

标签: javascript unit-testing

我的javascript代码中有一些IIFE,结构如下:

function myIIFE() {
    function mtd1() {}
    function mtd2() {}
    function publicmtd1() {}

    return Object.freeze({
        publicmtd1: publicmtd1
    });
}

如何在此IIFE中测试私有方法?

我知道我们不应该测试私有方法,如果我们需要测试它们,应该将它们转移到公共方法。

我很好奇是否可以这样做。在Java中,我能够通过使用反射来公开然后测试它们来测试私有方法。我想知道Javascript是否有类似于反射的东西。

更新:有些人指出我的示例代码不是IIFE。你是对的。我应该说模块而不是IIFE。

1 个答案:

答案 0 :(得分:1)

  

IIFE(立即调用函数表达式)是一个JavaScript函数,一旦定义就会运行。

您的示例不是 IIFE ,但无论如何,您无法访问myIIFE闭包中定义的函数,因此,在此形状中,您可以&#39 ; t测试它们。