很多时候用Jest,仅仅是想匹配一个对象的部分,或者测试数组的子集。这种情况下就可以用Jest的部分匹配功能。
文章包括:
- 利用Jest的
objectContaining
匹配对象的键值对 - 利用Jest的
arrayContaining
匹配数组包括的值 - 如何在Jest的
toHaveBeenCalledWith
利用部分匹配功能
用 Jest 的 objectContaining 进行部分匹配
当你想测试对象的子集或者指定的键值对是,你可以使用 objectContaining
匹配器。
test('should contain important value in object', () => {
const object = {
important: 'important',
ignore: 'ignore',
}
expect(object).toEqual(
expect.objectContaining({
important: 'important',
})
)
})
当对象包含键值对 important: 'important'
的时候,测试就会通过。
嵌套对象的部分匹配
当你尝试寻找嵌套对象中的一个键值对,你是可以嵌套使用 objectContaining
的。
test('should contain important value in nested object', () => {
const nestedObject = {
ignore: 'ignore',
payload: {
important: 'important',
ignore: 'ignore',