gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 07:41:33 27 4
gpt4 key购买 nike

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

这两项检查看起来应该做正确的事情,它们是 deepEqualpropEqual然而,两者似乎都没有完全达到我想要的效果:

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

如果我使用 propEqual,我只会收到一条消息:RangeError:在 String.match (native) 处超出了最大调用堆栈大小,并且测试失败。

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

最佳答案

对于遇到我上面描述的 propEqual 的第二个问题的人来说,给我带来麻烦的问题是循环引用,其中子对象持有对其父对象的引用,然后父对象将 QUnit 发送到旋转。可以调整 objectValues 函数,以便在已处理对象时将对象标记为“已见”,并且仅处理未见对象。有了这个,比较对我来说就有效了。

关于javascript - QUnit - 如何比较两个复杂对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27960982/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com