JSON Stringify函数返回相等但chai的相等函数返回不相等

在一个使用chai“应该”断言的testing套件中,以下返回false:

some.json.blob.should.equal(some.other.json.blob); 

但是,这返回true:

 JSON.stringify(some.json.blob).should.equal(JSON.stringify(some.other.json.blob)); 

我知道stringify()函数并不是testingJSON等价性的最稳健的方法,所以我想find一种直接比较JSON的方法,而不需要经过stringify。 如何直接比较对象而不使用JSON.stringify()?

要比较JSON而不使用JSON.stringify,请使用与您的chai断言相同的深度:

 some.json.blob.should.deep.equal(some.other.json.blob); 

有关deep.equal更多详细信息,请参阅Chai的文档 。