chaId

Chai 的 ID 等效断言。

NPM version Build Status

ID 有 多种形式。有时它们是字符串,有时是对象。有时你会在 .id 中找到它们,有时在 ._id 中找到它们。ChaId 允许你通过比较 ID 的字符串表示形式来测试等效性,无需过多担心初始表示形式或位置

{_id: 'foo'}.should.have.id('foo')
'foo'.should.id({id: 'foo'})
{id: 'foo', bar: 2}.should.have.same.id({id: 'foo', baz: 3})
{_id: 'foo'}.should.not.have.same.id({_id: 'bar'})
{_id: 'foo'}.should.have.same.id({id: {toString: function() { return 'foo'}})
{_id: 'foo'}.should.have.id(new ObjectId('foo'))

你也可以按 ID 比较对象列表

[{id:'a'}, {id:'b'}].should.have.ids ['a', 'b']
['a', 'b'].should.be.ids ['a', 'b']
[{id:'a'}, {id:'b'}].should.have.same.ids [{id:'a'}, {id:'b'}]
[{id:'a'}, {id:'b'}].should.not.have.same.ids [{id:'b'}, {id:'a'}]

默认情况下,顺序很重要。要忽略顺序,请链式调用 unordered

[{id:'a'}, {id:'b'}].should.have.same.unordered.ids [{id:'b'}, {id:'a'}]

你可以通过链式调用 includecontain 来测试 ID 子集

[{id:'a'}, {id:'b'}].should.include.same.ids [{id:'a'}]

MongoDB ObjectIds 配合使用效果良好

doc.should.have.id(new ObjectId())
doc.should.have.same.id(otherDoc)
(new ObjectId()).should.id(doc)

安装

这是 Chai 断言库 的插件。通过 npm 安装。

npm install chaid

插件

像使用其他 Chai 插件一样使用此插件。

var chai = require('chai')
  , chaid = require('chaid');

chai.use(chaid);