我在测试我的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的命名空间中的几个对象,如果我不得不采取每个对象的多个副本,它可能会变得有点凌乱。所以想知道有没有人有更好的解决方案来“重置”所有对象?