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

时间:2015-10-22 18:56:03

标签: json node.js chai

在使用chai的测试套件中应该'断言,以下返回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()函数不是测试JSON等价的最强大的方法,所以我想找到一种直接比较JSON而不通过stringify的方法。如何在不使用JSON.stringify()的情况下直接比较对象?

1 个答案:

答案 0 :(得分:1)

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

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

有关deep.equal的详细信息,请参阅Chai's documentation