众所周知,期望被 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);

07-24 16:27