首选什么:`toBe(null)`或`toEqual(null)`?

时间:2019-01-21 14:20:07

标签: javascript reactjs null jestjs

我知道toBetoEqual之间的区别。我也知道toBe(null)toEqual(null)总是返回相同的值,无论您在哪个节点上调用它们。

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

非常感谢您提供的任何见解! :)

编辑:我刚刚看到也有toBeNull()。是首选,还是使用哪一个都没关系?

1 个答案:

答案 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()也是如此。