2016-03-03 3 views
0

У меня есть единичный тест Жасмин, который тестирует угловой контроллер, в результате чего функция возвращает обещание и заполняет поле контроллера результатами обещания. Я проверяю это, чтобы проверить, что поле заполняется и вызывается $ rootScope. $ Apply для решения обещания и установки значения.

Когда вызывается $ rootScope. $ Apply, я получаю сообщение об ошибке из-за модуля, пытающегося GET json-файла в его настройке конфигурации.

Карма показывает т ошибка быть связана с $ hhtpBackend и происходит от углового mocks.js

Error: Unexpected request: GET /languages/en.json 
No more request expected 
     at $httpBackend (c:\dev\myapp\scrips\angular-mocks.js:1244:17) 
     at sendReq (c:\dev\myapp\scripts\angular.js) 
     at serverRequest (c:\dev\myapp\scripts\angular.js) 
     at Scope.$eval 
     at Scope.$digest 
     at Scope.$apply 

ответ

2

Вы должны сказать Карма ожидать вызова. Нечто подобное должно работать:

 // Note this is just for a typical test 
     it('should make an http get request',function() { 
     httpBackend.expectGET(fullUrlToGoTo).respond({data: 'Success'}); 
     // function that triggers the call 
     httpBackend.flush(); 
     }); 

Но в вашем случае, потому что это происходит в той части установки вам нужно, чтобы переместить его в beforeEach функции и, я считаю, убедитесь, что называется, прежде чем загрузить модуль приложения ,

+0

Удивительный, который остановил ошибку, которую я видел, спасибо за это. Мое обещание не решает, но я сейчас рассмотрю это и цифру, что часть –

+0

@AnthonyJoanes Нет проблем. Обещания могут быть раздражающими. Правильный способ - ввести $ q и вызвать $ q.defer(). Тогда вы сможете контролировать, какая часть обещания вернется, то есть либо решить, либо отклонить – Katana24

+0

Спасибо @ Katana24. Теперь я все это работаю, выполняя именно это с помощью службы $ q и издеваясь над моей зависимостью от службы. Спасибо за совет $ httpBackend, я использовал chutzpah в своем последнем проекте и не должен был настраивать это таким образом. –