回答:
以下のために期待して、.equal
むしろ自分のデータよりも、オブジェクトを比較し、あなたのケースでは、2つの異なる配列です。
.eql
値を深く比較するために使用します。このリンクをチェックしてください。
または.deep.equal
、と同じようにシミュレートするために使用できます.eql
。
または、あなたのケースではチェックし たいかもしれません.members
。
アサートされ、使用することができ.deepEqual
、リンクを。
to.deep.equal(['a','b'])
動作していないようです。ただし、to.have.all.members(['a','b'])
します。とても扱いにくい…
ディープイコールを使用してください。ネストされた配列とネストされたJsonを比較します。
expect({ foo: 'bar' }).to.deep.equal({ foo: 'bar' });
メインドキュメントサイトを参照してください。
expect([1, 5, 10].sort()).to.deep.equal([1, 10, 5])
これは、chaiを使用して連想配列を深くテストする方法です。
2つの連想配列が等しいと主張しようとして問題がありました。これらは実際にはJavaScriptで使用するべきではないことはわかっていますが、連想配列への参照を返すレガシーコードに関するユニットテストを作成していました。:-)
関数を呼び出す前に、変数をオブジェクト(配列ではなく)として定義することで、次のようにしました。
var myAssocArray = {}; // not []
var expectedAssocArray = {}; // not []
expectedAssocArray['myKey'] = 'something';
expectedAssocArray['differentKey'] = 'something else';
// legacy function which returns associate array reference
myFunction(myAssocArray);
assert.deepEqual(myAssocArray, expectedAssocArray,'compare two associative arrays');
.deepEqual()
(chaijs.com/api/assert)に変更されました。