代码之家  ›  专栏  ›  技术社区  ›  Max Shawabkeh

Javascript白盒测试-如何处理隐私?

  •  6
  • Max Shawabkeh  · 技术社区  · 15 年前

    我之前编写的大多数测试都是在Python中进行的,在Python中没有真正的私有变量(成员、标识符,无论您想调用它们什么)。一个简单的建议隐私通过一个领先的下划线为用户,并自由地忽略它,而测试代码。在静态类型的OO语言中,我认为可以通过将私有成员转换为受保护的成员,并对要测试的对象进行子类化,从而使私有成员可以被测试访问。在Javascript中,后者不适用,而前者似乎是不好的做法。

    那么,有没有一种标准的方法来保持变量的私有性,同时仍然保留一些用于Javascript测试的后门呢?

    1 回复  |  直到 14 年前
        1
  •  1
  •   haffax    15 年前

    不,我不相信有。它基本上归结为您是采用闭包方法并放弃白盒测试,还是进行白盒测试并对“私有”成员使用名称修饰。实际上,不仅在Python中,而且在javascript中,太多的项目使用不那么神奇的下划线来装饰隐私。所以在某种程度上,这已经是一个被广泛接受的解决问题的方法。

    如果您不想这样做,并且非常非常需要白盒单元测试,那么您可以始终将测试集成到您的对象中。如果您对生产代码有单独的构建步骤(最小化、要求/提供分辨率等),那么您可以删除此过程中的测试函数。