我知道toBe
和toEqual
之间的区别。我也知道toBe(null)
和toEqual(null)
总是返回相同的值,无论您在哪个节点上调用它们。
我想知道的是,是否有一种首选或推荐的方式来检查null
。或者,如果在这方面没有建议,使用一个或另一个仅取决于团队(甚至取决于开发人员)。
非常感谢您提供的任何见解! :)
编辑:我刚刚看到也有toBeNull()
。是首选,还是使用哪一个都没关系?
答案 0 :(得分:1)
它们之间没有实际区别,它们与null
的行为类似。
toBe
提供了===
比较(更具体地说是Object.is
)。
toEqual
提供了使用魔术的更宽松的比较。没有详细记录。它使用===
来比较基元,但是当涉及到对象时会有例外,例如expect(false).toEqual(new Boolean(false))
。即使使用===
for null
,它也需要一些专业知识才能推论expect(someValue).toEqual(null)
断言的作用。
expect(someValue).toBe(null)
明确表明使用严格的比较,expect(someValue).toBeNull()
也是如此。