You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Jest测试含UUID键的对象值中1和2各恰好出现两次?

测试UUID键对象的完整性与值分布

假设我们有一个键由UUID生成的对象,结构如下:

const mapper: {[k: string]: string} = {'id1': '1', 'id2': '2', 'id3': '1', 'id4': '2'}

需要完成三项核心测试:

  • 验证对象包含4个ID
  • 确保每个ID的值只能是'1'或'2'
  • 确认值'1'和'2'恰好各出现两次

完整测试代码实现

// 验证ID总数为4
expect(Object.keys(mapper)).toHaveLength(4);

// 校验每个值的合法性
Object.values(mapper).forEach(value => {
  expect(['1', '2']).toContain(value);
});

// 统计并验证值的出现次数
const valueCounts = Object.values(mapper).reduce((counts, value) => {
  counts[value] = (counts[value] || 0) + 1;
  return counts;
}, {} as {[key: string]: number});

expect(valueCounts['1']).toBe(2);
expect(valueCounts['2']).toBe(2);

各测试项说明

  • ID数量验证:通过Object.keys()获取所有键,使用toHaveLength断言直接判断数量是否符合预期。
  • 值范围校验:遍历对象所有值,确保每个值都属于允许的集合,避免出现非法值。
  • 值分布统计:利用reduce方法统计每个值的出现次数,再分别断言'1'和'2'的计数为2,保证分布符合要求。

内容的提问来源于stack exchange,提问作者Osman Mamun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 18:18:20