Mocha / Chai JSON比较失败

时间:2016-03-08 18:54:24

标签: angularjs json compare 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);

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

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

        return angular.fromJson(value);
    }
}

错误消息如下:

  

AssertionError:期望{name:' TestObject' }等于{name:   '的TestObject' }

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

2 个答案:

答案 0 :(得分:0)

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

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

var actual = StorageService.get('test');        
expect(angular.toJson(actual)).to.equal(expected);

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

答案 1 :(得分:0)

使用深度等于

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

请参阅参考资料:https://sourceforge.net/projects/onvifdm/