2016-03-08 68 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); 

這給正確的測試結果。