【发布时间】:2012-09-27 21:02:34
【问题描述】:
我们正在为一个程序编写测试。我们想编写一个功能测试来验证程序的输出是否符合某些期望。 返回的对象是一个复杂的 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].
[在示例中,我简化了对象的复杂性...]
我应该坚持这样一个事实,即我们需要一段足够聪明的代码来告诉我们有什么不同,而不是仅仅告诉我们两个对象不同。我们现在讨论的是深度平等,但我们还没有发现任何能真正告诉我们差异的东西。
【问题讨论】:
标签: javascript node.js testing