首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么此QUnit测试失败?

问为什么此QUnit测试失败?
EN

Stack Overflow用户
提问于 2014-12-01 13:29:56
回答 1查看 2.7K关注 0票数 1

我正在尝试学习单元测试,我找到了Ben Alman写的这个overview。在幻灯片23中,他展示了包含对象{a: 1}的名为actual的变量如何不等于对象本身。那是什么意思?它们不是相同的值吗?这些对象怎么会不同呢?

代码语言:javascript
复制
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");
});
EN

回答 1

Stack Overflow用户

发布于 2014-12-01 14:00:40

JS中的对象永远不会相同,即使它们的值看起来是相同的。主要归结为不同的实例。有关Sameness in JavaScript的更多信息,请阅读。在StackOverflow上也有关于真实细节的much better答案。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27222223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档