我们正在为一个程序编写测试。我们想编写一个功能性测试来验证程序的输出是否符合预期。
返回的对象是一个复杂的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].
在这个例子中,我简化了我们对象的复杂性......我应该坚持这样一个事实:我们需要一段聪明到足以告诉我们什么是不同的代码,而不仅仅告诉我们这两个对象是不同的。我们现在知道深度相等,但我们还没有找到任何可以告诉我们差异的东西。