代码:
var buster = require('buster'),
NumberCruncher = require('../src/NumberCruncher');
buster.testCase('Number Cruncher', {
setUp: function() {
this.numberCruncher = new NumberCruncher();
},
tearDown: function() {
delete this.numberCruncher;
},
'constructor returns numberCruncher': function() {
assert(this.numberCruncher instanceof NumberCruncher);
},
'object constructor correct': function() {
assert.equals(this.numberCruncher.constructor, NumberCruncher);
},
'can add numbers': function() {
buster.assert.equals(this.numberCruncher.add(5,3), 8, 'NumberCruncher cannot add');
}
});
背景:
在setUp
中,我们正在创建一个对象并将其设置为this
(测试用例)的属性。在tearDown
我们正在删除所述属性。
问题:
如果非要解释在方法中删除对象属性的做法背后的想法或原因tearDown
,你会说什么?为什么这是一件好事?它有好处吗?它只有在扩展到非常大的对象时才有好处吗?
我的想法:
我的推理(可能是错误的)是我们保证在每次测试运行后进行垃圾收集。