当测试失败时,我使用 expect(x).to.deep.equal(y)
比较两个对象,我想在浏览器测试报告中查看实际值。相反,我看到的是这样的东西:
AssertionError: expected { Object (x, y, ...) } to deeply equal { Object (x, y, ...) }
所以它并没有真正显示任何有用的东西。
有没有办法自定义 chai.js 如何格式化这些对象?
现在,您可以根据文档配置对象被截断之前的最大长度:
chai.config.truncateThreshold = 0; // disable truncating
不是真的。这被硬编码到柴中。
以下函数是他们的对象格式化程序(此处来源),它完全按照您发布的内容执行:
} else if (type === '[object Object]') {
var keys = Object.keys(obj)
, kstr = keys.length > 2
? keys.splice(0, 2).join(', ') + ', ...'
: keys.join(', ');
return '{ Object (' + kstr + ') }';