我剛從單元測試開始,所以請耐心等待。單元測試javascript函數在其他地方不知不覺中使用
以下面這個'傻'的例子。我在頁面上創建了一個要綁定函數的元素對象。我爲test.myFunction設置了一個單元測試,並確保它返回'textToReturn'。
var global = {
o_bindings : [
{
object: '#element1',
event: 'keyup',
selector: '',
data: '',
theFunction: function() {
test.myFunction(textToReturn);
}
},
// .... lots of other code ....
{
object: '#element2',
event: 'keyup',
selector: '',
data: '',
theFunction: function() {
test.myFunction(textToReturn);
}
}
]
};
$(document).ready(function() {
for (var i=0; i < global.o_bindings.length; i++) {
var o = global.o_bindings[i];
$(o.object).on(o.event, o.selector, o.data, o.theFunction);
}
});
我再講一年後,並決定#element2的應該返回每次都相同的文字,所以我硬編碼在功能和更新原始對象的一部分:
{
object: '#element2',
event: 'keyup',
selector: '',
data: '',
theFunction: function() {
test.myFunction()
}
}
我忘記了該函數也被用在#element1上,並相應地更新我的單元測試,以便它總是返回相同的文本。
單元測試會通過 - 但#element1不會按預期工作。
我錯過了什麼嗎?或者這會在功能測試中找到,因爲它超出了單元測試的範圍?任何建議將不勝感激。
如果發生這種情況,那麼您已經忘記爲'global.o_bindings'或其他使用它的東西編寫單元測試。 – slebetman 2014-10-16 14:00:15