代码之家  ›  专栏  ›  技术社区  ›  enanone

首选:“Tobe(空)”或“ToEqual(空)”是什么?

  •  -1
  • enanone  · 技术社区  · 6 年前

    我知道两者的区别 toBe toEqual . 我也知道 toBe(null) toEqual(null) 将始终返回相同的值,无论您在哪个节点上调用它们。

    我想知道的是 首选 推荐 检查方法 null . 或者,如果在这方面没有建议,那么使用一个或另一个只取决于团队(甚至取决于开发人员)。

    非常感谢 任何 你能提供的洞察力!:)

    编辑:我刚刚看到 toBeNull() . 这是首选的,也许,还是不重要,你用哪一个?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Estus Flask    6 年前

    他们之间没有实际的区别,他们的行为与 null .

    toBe 提供 === 比较(更具体地说, Object.is )

    toEqual 提供更宽松的比较,使用一些魔力。没有详细记录。它使用 = = 比较原语,但涉及对象时有例外,例如 expect(false).toEqual(new Boolean(false)) . 即使它使用 === for null 它需要一些专业知识来推断 expect(someValue).toEqual(null) 断言确实如此。

    expect(someValue).toBe(null) 断言明确地表明使用了严格的比较,因此 expect(someValue).toBeNull() .