gpt4 book ai didi

javascript - 如何使用 Chai 断言对象数组中的类型?

转载 作者:行者123 更新时间:2023-12-02 22:14:37 25 4
gpt4 key购买 nike

我有以下背景:

const data = [
{
id: 1,
name: 'thenamefoo',
modified: new Date() // random date
},
{
id: 2,
name: 'namebar',
modified: new Date() // random date
},
...
];

expect(data)...

我想断言我的数据将始终是一个数组,其中包含具有固定键(和类型)的对象。

例如,我想要类似的东西

expect(data)
.to.be.an('array')
.that.all.have.types.like({
id: Number,
name: String,
modified: Date
});

这可能吗?如何?有库吗?

最佳答案

在我看来,您应该专注于验证数据,而不是使用笨重的断言 DSL。通过简单的真/假检查,您所需要的只是简单的 assert:

test('my data is valid', () => {
data.forEach(({id, name, modified}) => {
assert(typeof id === 'number', `${id} is not a number`);
assert(typeof name === 'string', `${name} is not a string`);
assert(modified instanceof Date, `${modified} is not a date`);
});
});
<小时/>

走得更远

如果您需要检查其他内容,这当然没有多大帮助:

  1. 数组不为空
  2. 每个对象都具有精确的 idnamemodified 作为属性。不多不少
  3. id 是一个正整数
  4. name 不是空字符串
  5. ...

要获得更细粒度的控制,您绝对应该查看 .

关于javascript - 如何使用 Chai 断言对象数组中的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59431078/

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