我已经开始使用 Qunit 对我的代码进行单元测试,但是在比较对象时遇到了惊人的问题。
我正在测试的代码动态创建一个对象:
var fields = ['id','name'];
var result = {};
for (var field in fields)
{
var name = fields[field];
result[name] = name;
}
var expected = { id : 'id', name : 'name' };
test(expected, result, "same ?");
这个测试失败了,我可以看到,虽然预期只包含字段 id 和 name,但 result 还包含很多函数,例如
"function (iterator, context) {...
我认为这些功能来自我将对象视为数组以便分配给它。
有没有办法去除这些功能(或首先阻止它们被添加)?
我正在考虑做
result = $.parseJSON($.toJSON(result));
有没有更好的办法?