我们正在为一个程序编写测试。我们想编写一个功能测试来验证程序的输出是否符合某些期望。返回的对象是一个复杂的 JS 对象(具有嵌套对象、许多属性......等)。
我们想测试这显然符合我们的需要。到目前为止,我们一直在“浏览”对象和预期结果,检查每个属性和每个嵌套对象。这非常麻烦,我们想知道是否有任何库可以“构建”所有测试,仅基于对象。例如像这样的东西。
var res = {
a: {
alpha: [1,2,3],
beta: "Hello",
gamma: "World"
},
},
b: 123,
c: "It depends"
}
};
var expectation = {
a: {
alpha: [1,2,4],
beta: "Hello",
gamma: "World"
},
},
b: 123,
c: "It depends"
}
};
assert(res, expectation) // -> Raises an error because res[a][b][2] is different from expectation[a][b][2].
[在示例中,我简化了我们对象的复杂性......]
我应该坚持这样一个事实,即我们需要一段足够聪明的代码来告诉我们有什么不同,而不是仅仅告诉我们这两个对象是不同的。我们现在谈的是深度平等,但我们还没有发现任何能真正告诉我们差异的东西。