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

如何排除random_id属性比较两个JS对象?尝试chai-exclude未果

解决chai-exclude排除属性失败的问题

先修正基础语法错误

你定义的object_1有两处问题:一是属性结尾用了分号,JS对象属性应该用逗号分隔;二是name和surname没加引号,属于未定义变量,而object_2里是字符串字面量,这俩属性值本身就不相等,就算排除random_id也没法匹配。先把对象修正成正确格式:

var object_1 = {
     random_id: 'random_id_1',
     name: 'name',
     surname: 'surname'
}

var object_2 = {
     random_id: 'random_id_2',
     name: 'name',
     surname: 'surname'
}

确认chai-exclude插件已正确注册

得先确保你装了插件,并且在测试代码里完成注册:

  1. 安装插件:npm install chai-exclude --save-dev
  2. 在测试文件中引入并注册:
const chai = require('chai');
const chaiExclude = require('chai-exclude');

chai.use(chaiExclude); // 这步必须做,不然用不了excluding方法
const expect = chai.expect;

正确编写断言

如果上面的步骤都搞定了,你的断言代码应该就能正常运行。要是还是不行,试试调整写法顺序:

expect(object_1).to.excluding('random_id').deep.equal(object_2);

其他排查点

  • 检查chai和chai-exclude的版本是否兼容,比如chai 4.x搭配chai-exclude 2.x是没问题的
  • 如果是嵌套对象里的属性需要排除,得用excludingEvery,但你这是顶级属性,用excluding就足够

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:15:52