gpt4 book ai didi

javascript - 为什么这个 QUnit 测试失败?

转载 作者:行者123 更新时间:2023-11-28 07:47:48 25 4
gpt4 key购买 nike

我正在尝试了解单元测试,我发现了这个 overview本·阿尔曼着。幻灯片 23中,他展示了包含对象 {a: 1} 的名为 actual 的变量如何不等于对象本身。这意味着什么?它们不是相同的值吗?对象怎么会不同?

test("deepEqual", 7, function() {
var actual = {a: 1};

equal( actual, {a: 1}, "fails because objects are different");
deepEqual(actual, {a: 1}, "passes because objects are equivalent");
deepEqual(actual, {a: "1"}, "fails because '1' !== 1");

var a = $("body > *");
var b = $("body").children();

equal( a, b, "fails because jQuery objects are different");
deepEqual(a, b, "fails because jQuery objects are not equivalent");
equal( a.get(), b.get(), "fails because element arrays are different");
deepEqual(a.get(), b.get(), "passes because element arrays are equivalent");
});

最佳答案

JS 中的对象永远不会相同,即使它们的值看起来相同。主要归结为不同的情况。了解更多 Sameness in JavaScript 。还有much better StackOverflow 上的真实详细信息的答案。

您可以看到 deepEqual 如何确定对象的“相同性”here 。另一个值得一看的是 lodash's implementation

关于javascript - 为什么这个 QUnit 测试失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27222223/

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