Chaiとの統合テスト中に問題が発生しています。私は配列にいくつかのキーを含むオブジェクトが含まれていることを確認したい。この場合、ユーザにアドレスを追加しています。ユーザが返されたときに、アドレス配列には最初に渡されたフィールドが含まれていますが、MongoDBによって生成されたObjectId
を確認する必要はありません。私は配列操作のためにchai thingsを使用しています。Chaiは、配列にキーを含むオブジェクトが含まれていることを確認します
私がチェックしています要素は、以下のアサーションの形でインデックス0であることを知ったとき、私は実用的なソリューションを持っている:私が欲しいもの
expect(response.body.addresses[0]).to.deep.include({
text: '123, fake street',
loc: {
type: 'Point',
coordinates: [0, 0]
}
});
する配列が含まれていることを主張するchai-things
を利用することです上記のアサーションと同じ要件を満たすオブジェクト
expect(response.body.addresses).to.contain.something.that.deep.includes({
text: '123, fake street',
loc: {
type: 'Point',
coordinates: [0, 0]
}
});
しかし、これはで失敗します:私が思い付くことができ、最も近いソリューションですAssertionError: expected { Object (text, _id, ...) } to deep include { text: '123, fake street', loc: { type: 'Point', coordinates: [ 0, 0 ] } }
配列内のオブジェクトの位置に依存せずにこれを達成する方法はありますか?