1
私はいくつかのユニットテストを、配列の結果と配列を比較することを試みていますが、残念なことにその結果は、オブジェクトの順序は、テストが失敗した、常に同じではありません。ノードモカ/チャイユニットテスト - オーダーに関係なくオブジェクトの配列を比較
expect(a.length).to.equal(b.length);
for(let item of b){
expect(a).to.deep.contain(item);
}
:
簡体例
var a = [
{name: 'Joe', age: 35},
{name: 'Steve', age: 30},
]
//assume we got the result in this order
var b = [
{name: 'Steve', age: 30},
{name: 'Joe', age: 35},
]
expect(a).to.deep.equal(b) //Fails
私の現在の回避策は、これを行うことです
しかし、私はモカ/チャイでの注文に関係なく直接比較を深める方法を探しています、それは可能ですか?
更新: これはハックのビットですが、それはかもしれないが、誰がそれを必要とする場合には、あなたがのtry/catchで、エラー用途に全体を置くことができ、深い含まれているのに役立ちます:
try{
expect(a).to.have.deep.members(b);
}catch(e){
expect(a).to.deep.equal(b);
}
最初のテストが失敗した場合は、2番目のテストも失敗しますが、失敗しても差異が出力されます。
おかげで、この作業を行いますが、テストが失敗した場合、それは違いを(のような深い含まれて)表示されません、それを強制する方法はあります? – Mankind1023
@ Mankind1023私はそれが可能だとは思わない:( – robertklep