Сбой тестирования $ httpBackend на моем контроллере

#angularjs #jasmine

#angularjs #jasmine

Вопрос:

При издевательстве над $ httpBackend, если я отвечаю объектом, ожидание не проходит тест. Однако, если я отвечу строкой, проблем не возникнет.

вот plnkr, который я создал: http://plnkr.co/iRKOG7

если вы измените

 var data = "one" 
  

Для

 var data = {key: "one"}
  

ожидание завершится неудачей. Есть какие-либо подсказки, почему это так?

Ответ №1:

httpBackend возвращает копию вашего объекта, точно так же, как это сделал бы реальный сервер, вместо того, чтобы возвращать ссылку на объект. Таким образом, вы должны использовать

 expect($scope.data).toEqual(data);
  

Обоснование объясняется в этой угловой проблеме: https://github.com/angular/angular.js/issues/5265