gpt4 book ai didi

javascript - 如何使用 Jest 测试对象的一部分?

转载 作者:可可西里 更新时间:2023-11-01 01:47:37 26 4
gpt4 key购买 nike

我想测试时间是否被正确解析,我只对检查部分属性而不是整个对象感兴趣。在这种情况下,小时和分钟。

我尝试使用 expect(object).toContain(value) 但正如您在下面的代码片段中看到的那样,它失败了,尽管该对象包含我感兴趣的属性并且它们具有正确的值。

● Calendar > CalendarViewConfig › it should parse time

expect(object).toContain(value)

Expected object:
{"display": "12:54", "full": 774, "hour": 12, "hours": 12, "minutes": 54, "string": "12:54"}
To contain value:
{"hours": 12, "minutes": 54}

67 | it('it should parse time', () => {
68 | ...
> 69 | expect(parseTime('12:54')).toContain({ hours: 12, minutes: 54})
70 | })

at Object.<anonymous> (src/Components/Views/Calendar/CalendarViewConfig.test.js:69:32)

最佳答案

要检查预期对象是否是接收到的对象的子集,您需要使用 toMatchObject(object) 方法:

expect(parseTime('12:54')).toMatchObject({ hours: 12, minutes: 54})

expect.objectContaining(object)匹配器:

expect(parseTime('12:54')).toEqual(expect.objectContaining({ hours: 12, minutes: 54}))

它们的工作方式略有不同,请查看 What's the difference between '.toMatchObject' and 'objectContaining' 了解详情。

toContain() 旨在检查一个项目是否在数组中。

关于javascript - 如何使用 Jest 测试对象的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49044994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com