我在測試我的jQuery插件時遇到泄漏問題。當我想模擬一個文字對象的值或函數時,就會出現這個問題。Qunit:測試泄漏
實施例:
test('Overwrite some default setting', function(){
$.fn.plugin.defaults.bar = 'foo';
});
test('Bar should be undefined', function(){
equals($.fn.plugin.defaults.bar, undefined);
});
因爲第一測試添加的「杆」變種默認此測試將失敗。我用下面的代碼修復了它,但是複製副本看起來不太優雅。
$(function(){
/*
* Trolley Button Base: Options.
*/
var defaults_copy = $.extend({}, $.fn.plugin.defaults);
var setdown = {
setup : function(){
$.fn.plugin.defaults = $.extend({}, defaults_copy);
},
teardown : function(){ }
};
module('Test leakage', setdown);
test('Overwrite some default setting', function(){
$.fn.plugin.defaults.bar = 'foo';
});
test('Bar should be undefined', function(){
equals($.fn.plugin.defaults.bar, undefined);
});
})
另外,如果我在jQuery的命名空間中的幾個對象,如果我不得不採取每個對象的多個副本,它可能會變得有點凌亂。所以想知道有沒有人有更好的解決方案來「重置」所有對象?