예상 결과와 실제 결과가 동일한 직렬화를 가지므로 Diff가 억제됨

다음 qunit 테스트를 가정합니다.

assert.equal({ foo: 'bar' }, { foo: 'bar' });


그 두 개체는 같은 것 같습니다. 따라서 어설션이 통과되어야 합니다. 오른쪽?



이것이 작동 방식이 아님이 밝혀졌습니다. 그리고 후속 암호 메시지도 실제로 도움이 되지 않습니다.

Diff suppressed as the expected and actual results have an equivalent serialization.



qunit.assert의 문서를 살펴보면 다음을 찾을 수 있습니다.

The equal assertion uses the simple comparison operator (==) to compare the actual and expected arguments. When they are equal, the assertion passes; otherwise, it fails.



그리고 이중 등호 기호는 referential equality을 사용하고 위의 예에서(일반적인 대부분의 테스트에서) 동일한 객체를 비교하는 것이 아니라 동일한 모양과 값의 두 객체를 비교하므로 절대 반환할 수 없습니다true. ) .

해결책



이에 대한 해결책은 정말 간단합니다. deepEqual을 사용하면 됩니다.

assert.deepEqual({ foo: 'bar' }, { foo: 'bar' });


나에게 주는 것:




Pexels의 Andrea Piacquadio님의 사진

좋은 웹페이지 즐겨찾기