2016-03-08 31 views
0

我正在使用摩卡和柴来测试我的角度服务。在少数测试案例中,我想比较两个对象。其中一个转换为JSON并从JSON解析回到一个对象。摩卡/ Chai 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: expected { name: 'TestObject' } to equal { name: 'TestObject' }

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

回答

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); 

这给正确的测试结果。