最佳答案
Jest 的文件如下:
ToBe 只是检查一个值是否符合您的期望,它使用 = = = 来检查严格的相等性。
至于 toEqual
:
使用。当你想检查两个对象是否具有相同的值时,可以使用。这个匹配器递归地检查所有字段的相等性,而不是检查对象标识ーー这也称为“深度相等”。例如,toEqualandtoBe 在这个测试套件中的行为不同,所以所有的测试都能通过。
const x = { a: { b: 3 } };
const y = { a: { b: 3 } };
expect(x).toEqual(y);
expect(x).toBe(y);
在这种情况下,toEqual
通过,但 toBe
失败。我知道 toEqual
通过是因为它做了 非常平等检查。为什么 toBe
在这种情况下会失败?
此外,是否有使用 toBe
和 toEqual
的最佳实践(不仅在 Jest 中,而且在其他测试框架中也有) ?