开玩笑如何测试地图内容,即键和值

问题描述 投票:0回答:1

我有一个 JSON 对象,其地图如下:

{"name": "Bertha", [["id", "123"], ["status", "active"]]}

请注意,我表示地图就像在打字稿中表示一样,但我不知道它将如何在底层 Jest 框架中表示。当我使用 isEqual([["id", "123"....]) 语法时,它失败了。据报道,它收到了:

Map {"id" => "123", "status" => "active"}

我觉得这很令人困惑。

如何使用 Jest 测试键值对?

javascript jestjs
1个回答
0
投票

这个

[["id", "123"], ["status", "active"]]

是数组的数组,而不是Map。

这个

Map {"id" => "123", "status" => "active"}

是 Map 的常规语法,可以通过将上面的数组数组传递到

new Map
来构造。

因为看起来你实际上拥有的是一个映射,而不是一个数组数组 - 为了测试映射的键值是否如上,我将获取映射的条目(将其从映射返回到数组)数组)。然后可以使用

toEqual
深入检查该结构。

const entries = [...map.entries()];
expect(entries).toEqual([["id", "123"], ["status", "active"]]);

另一种选择(如果地图中有很多项目,则不太可持续)是单独检查每个项目。

expect(map.get('id')).toBe(123);
expect(map.get('status')).toBe('active');
© www.soinside.com 2019 - 2024. All rights reserved.