QUnit - 如何比较两个复杂的对象

时间:2015-01-15 10:05:38

标签: javascript qunit

我使用QUnit在一个相当复杂的JavaScript应用程序中对一些序列化和反序列化逻辑进行单元测试,但是我无法通过测试。

看起来好像应该做正确的事情的两张支票是deepEqualpropEqual,但是,它们似乎都没有完全符合我的要求:

如果我使用deepEqual并且两个对象不匹配,则断言失败并且它向我显示指示问题的差异。但是,如果没有区别,我只会得到一条失败消息,显示传递给等式检查的第一个参数为没有第二个参数的“预期”值或任何差异的指示。我想这可能是因为它们不是同一个对象,但我不确定。

如果我使用propEqual,我只会收到一条消息RangeError: Maximum call stack size exceeded at String.match (native)并且测试失败。

是否可以使用QUnit执行此类检查?如果是这样,我做错了什么?

1 个答案:

答案 0 :(得分:0)

对于遇到propEqual我在上面描述的第二个问题的任何人,导致我麻烦的问题是循环引用,其中一个子对象持有对它的父级的引用,然后将其发送到QUnit旋转。可以调整objectValues功能,以便将对象标记为"看到"当它已经处理它们并且只处理看不见的对象时。有了这个,比较对我有用。

相关问题