$ scope. $ apply выдает сообщение "Неожиданный запрос: запрос больше не ожидается" в Mocha Sinon

У меня есть служба A, которая вызывает другие службы B и, в свою очередь, B, в который введен $ http, вызывает веб-службу API.

Теперь, когда я пытался заглушить службу B с помощью Mocha Sinon, я получаю следующую ошибку

Неожиданный запрос: ПОЛУЧИТЬ приложение / контракт / прогноз / il8n / en.json Запросов больше не ожидается

Обратите внимание: я нигде в своем коде не использую httpBackend.

Код следующий

var somePromise = B.getData(url,data);
somepromise.then(success, failed);

Тестовый код

it('Testing A.loadCustomerInformation', function() {
       var deferred = $q.defer();
       var promise = deferred.promise;
       sinon.stub(B,'getData').returns(promise);
       deferred.resolve({data : customerInformation});
       A.loadCustomerInformation(vm);
       rootScope.$apply();
       assert(B.getData.called);
       assert(A.someotherMtd1.called);
       assert(A.someotherMtd2.called);
});

В основном я хочу заглушить функцию службы B getData и вернуть фиктивный ответ и проверить, правильно ли заполнен объект vm (модель представления) на фиктивный ввод.

У меня следующая конфигурация

Gulp, Karma, phantom js, Mocha, Sinon и т. Д.

Помощь приветствуется!


person S Atah Ahmed Khan    schedule 16.02.2016    source источник
comment
Я предполагаю, что не зная полного кода, loadCustomerInformation где-то использует ngTranslate, который загружает ваши английские переводы как запрос.   -  person Martin Seeler    schedule 19.02.2016
comment
Как мы можем это ограничить?   -  person S Atah Ahmed Khan    schedule 19.02.2016
comment
stackoverflow.com/questions/18876290 /   -  person Martin Seeler    schedule 19.02.2016
comment
Это сработало после перехода по ссылке, упомянутой @Chasmo, которая в основном говорит об этом (angular-translate.github.io/docs / # / guide /) ссылка. Спасибо :)   -  person S Atah Ahmed Khan    schedule 01.03.2016


Ответы (1)


Как я прокомментировал выше, следуя модульному тестированию с Перевести, который я получил из набора комментариев из @Chasmo. вверх красиво .. Ниже приведен код, который я добавил

beforeEach(module('app', function ($provide, $translateProvider) { $provide.factory('testLoader', function ($q) { return function () { var deferred = $q.defer(); deferred.resolve({}); return deferred.promise; }; }); $translateProvider.useLoader('testLoader'); }));

person S Atah Ahmed Khan    schedule 01.03.2016