【发布时间】:2009-12-10 13:46:02
【问题描述】:
下面可以测试myInnerFunction吗?
var val = function() {
var myInnerfunction = function(input) {
return input + ' I ADDED THIS';
};
return myInnerfunction('test value');
}();
因为myInnerFunction 本质上是匿名执行的外部函数的私有成员,所以它似乎无法从外部测试。
【问题讨论】:
-
答案现在提出了一个更广泛的问题。这是一个微不足道的例子。我有 JS 函数,它们与预期的 DOM 结构紧密相关,它们与之耦合,并且不能被拉入通用公共实用程序 API。我需要测试这些功能;它们的逻辑很重要,但它们都在函数文字中声明为 on-DOM-ready,并作为事件处理程序附加到 DOM 元素。它们本质上是私有的,并且与 DOM 结构紧密耦合,但我仍然需要测试它们。为了让我能够从我的测试中访问它们,它们应该驻留在哪里?
-
为了将我想测试的方法从库中执行的on-dom-ready的匿名函数中取出,我将它们命名在一个与正在进行的功能相对应的“包”中在我的页面中。虽然这段代码实际上只会在这个特定的页面上使用,并且只能通过我添加到这个特定 DOM 的事件处理程序,但至少我现在可以测试这个逻辑了。谢谢大家指导我。欢迎任何进一步的想法。
标签: javascript testing