답변:
대한 기대 , .equal
오히려 자신의 데이터보다 개체를 비교하고, 귀하의 경우에 두 개의 서로 다른 배열입니다 것입니다.
.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를 사용하여 연관 배열을 심도있게 테스트하는 방법입니다.
두 개의 연관 배열이 동일하다고 주장하는 데 문제 가있었습니다. 나는 이것들이 실제로 자바 스크립트에서 사용되어서는 안된다는 것을 알고 있지만 연관 배열에 대한 참조를 반환하는 레거시 코드 주위에 단위 테스트를 작성하고있었습니다. :-)
함수 호출 전에 변수를 객체 (배열이 아닌)로 정의하여 수행했습니다.
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 )로 변경되었습니다 .