我正在尝试编写测试驱动的Javascript。我知道,测试每个功能至关重要。但我来到了一个绊脚石,因为我写的插件需要有一些私人功能。我无法窥探它们是如何运作的。如果我想在不改变其结构的情况下对代码进行良好测试,我还需要做什么? (虽然在限制范围内,我可以公开一些API。)
我正在使用sinon,QUnit和Pavlov。
答案 0 :(得分:3)
如果您正在进行测试驱动开发(正如标签所示),每行生产代码首先都会通过测试用例失败来证明。
换句话说,生产代码的每一行的存在都是隐式测试的,因为没有它,一些测试必定会失败。话虽如此,你可以放心地假设私有函数/ lambda / closure已经从TDD的定义中进行了测试。
如果你有一个私人功能而且你想知道如何测试它,这意味着你没有首先进行TDD - 现在你遇到了问题。
总结 - 在测试之前永远不要编写生产代码。如果遵循此规则,则无论代码有多深,都会对每行代码进行测试。