Mocha/Chai JSON 比较失败

Geo*_*ber 4 json compare angularjs chai

我正在使用 mocha 和 chai 来测试我的角度服务。在一些测试用例中,我想比较两个对象。其中之一被转换为 JSON 并从 JSON 解析回对象。

如果我使用 chai 比较两个对象,测试就会失败。这是我的测试代码:

var expected = {name: 'TestObject'};
window.localStorage.setItem('test', angular.toJson(expected));

var actual = StorageService.get('test');
expect(actual).to.equal(expected);
Run Code Online (Sandbox Code Playgroud)

这是该函数的实现StorageService.get():

function get(name) {
    if (angular.isDefined(webStorage)) {
        var value = webStorage.getItem(name);
        if (angular.isObject(value)) {
            return null;
        }

        return angular.fromJson(value);
    }
}
Run Code Online (Sandbox Code Playgroud)

错误信息如下:

AssertionError:预期 { name: 'TestObject' } 等于 { name: 'TestObject' }

对我来说,这两个对象似乎是相同的。这里有什么问题?

小智 8

使用深度等于

expect(actual).to.deep.equal(expected);
Run Code Online (Sandbox Code Playgroud)

请参阅参考: https: //www.chaijs.com/api/bdd/#method_deep