gpt4 book ai didi

javascript - 为什么我们要在 tearDown 中删除 [object].[property](单元测试)

转载 作者:行者123 更新时间:2023-11-30 18:20:15 24 4
gpt4 key购买 nike

代码:

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 方法中删除对象属性的做法背后的想法或原因,您会怎么说?为什么这是一件好事?它有好处吗?它只有在扩展到非常大的对象时才有好处吗?

我的想法:

我的推理(可能是错误的)是我们保证在每次运行测试后进行垃圾回收。

最佳答案

垃圾收集是否得到保证是无关紧要的。更重要的是将值重置为已知状态(在本例中为未定义),这样就不会因为有来自最后一个的脏数据而创建误报或漏报测试用例。

关于javascript - 为什么我们要在 tearDown 中删除 [object].[property](单元测试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12240155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com