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);