众所周知,期望被 Jest 取代。期望的某些属性也会改变。其中之一是toContain,它被称为toInclude。您将在这里找到它:https://github.com/skovhus/jest-codemods/blob/master/src/transformers/expect.js
我的问题是当我尝试使用toContain来检查一个对象是否与另一个对象匹配时,它向我显示错误。但是在toInclude之前,它只是一个行代码。因此,作为toInclude的替换,我发现它不同,但不完全相同。
这个数组工作正常。
expect([2,3,4]).toContain(4);
但是当我带着物体去时,这个错误出现了
expect({
name : 'Adil',
age : 23
}).toContain({
age : 23
});
这是错误
Error: expect(object).toContain(value)
Expected object:
{"age": 23, "name": "Adil"}
To contain value:
{"age": 23}
最佳答案
.toContain
用于checking that an item is in an array
如果要检查对象属性的值,则可以使用.toHaveProperty
-here are the docs
所以你的例子是
expect({
name : 'Adil',
age : 23
}).toHaveProperty('age', 23);
...或者为避免学习其他匹配器,您可以这样做:
expect({
name : 'Adil',
age : 23
}.age).toBe(23);