【问题标题】:Jasmine toEqual not working as expectedJasmine toEqual 没有按预期工作
【发布时间】:2015-11-20 16:11:22
【问题描述】:

我有一个这样的 Jasmine 测试:

expect(array.length).toEqual(0);

这通过了。出于好奇,我将其更改为:

expect(array.length).toEqual(false);

此测试失败。我的印象是 toEqual 方法进行了不严格的比较。如果我们这样做

console.log(0 == false);

我们得到输出

true

那么为什么这个测试失败了?

【问题讨论】:

  • toEqual 似乎只是在检查等价性。 stackoverflow.com/questions/22413009/…
  • 你用的是哪个jasmine版本?
  • 根据我在源代码中看到的,问题是特定于 jasmine 1.x 的。在 jasmine 2.x - 测试应该通过(虽然没有测试)。
  • 我实际上使用的是 Jasmine 2.3.4。所以它似乎仍然是一个问题/功能。

标签: javascript jasmine


【解决方案1】:

研究后回答我自己的问题:jasmine 采用 underscore 的 isEqual 方法,该方法进行深度比较以确定对象是否应该相等。所以这是一个比 javascript 的标准 == 比较更可靠的比较。

【讨论】:

    猜你喜欢
    • 2014-03-01
    • 2020-03-04
    • 1970-01-01
    • 2021-10-19
    • 2020-03-18
    • 2012-06-14
    • 2014-11-15
    • 1970-01-01
    • 2012-07-02
    相关资源
    最近更新 更多