摩卡/柴 JSON 比较失败



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

如果我使用 chai 比较拖曳对象,则测试失败。这是我的测试代码:

var expected = {name: 'TestObject'};
window.localStorage.setItem('test', angular.toJson(expected));
var actual = StorageService.get('test');
expect(actual).to.equal(expected);

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

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

错误消息如下:

断言错误: 预期 { name: '

TestObject' } 等于 { name: '测试对象' }

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

使用深度相等

expect(actual).to.deep.equal(expected);

参考资料: https://www.chaijs.com/api/bdd/#method_deep

我已经更改了测试以比较两个对象的 JSON 表示形式,而不是直接比较对象:

var expected = angular.toJson({name: 'TestObject'});
window.localStorage.setItem('test', expected);
var actual = StorageService.get('test');        
expect(angular.toJson(actual)).to.equal(expected);

这给出了正确的测试结果。

相关内容

  • 没有找到相关文章

最新更新