Контрольные примеры жасмина для служб, которые возвращают объект DS.defineResource

Может ли кто-нибудь помочь мне в тестировании приведенного ниже кода. Моя функция выглядит следующим образом

function BiAlertsService(DS,companyUrlConfig) {
return DS.defineResource({
    name: 'bi-alerts',
    idAttribute: 'id',
    endpoint: companyUrlConfig.companyApi + companyUrlConfig.companyBaseUrl+ companyUrlConfig.resources.alerts + '/' + '{companyId}/{empId}' + companyUrlConfig.resources.biAlerts,
    deserialize: function(resourceConfig, data) {
        var json = data.data;
        return {
                id :    JSON.stringify(json),
                data : json.data
            };
    }

});

}

Я смог инициализировать службу, но не смог протестировать функцию десериализации. Я пытался создать для нее шпион, но кое-кто не смог ее протестировать. Ниже приведен мой код Spec.

beforeEach(inject(function (biAlerts,_DS_, $q,$rootScope,_companyUrlConfig_) {
    biAlerts = biAlerts;
    $scope = $rootScope.$new();
    companyUrlConfig=_companyUrlConfig_;
    DS=_DS_;

    deferred=$q.defer();

}));
DS.defineResource = jasmine.createSpy('').and.returnValue(deferred.promise);

заранее спасибо

1 ответ

Мы должны выполнить функцию десериализации при передаче объекта в метод defineResource, передав необходимые параметры, как показано ниже.

Пожалуйста, посмотрите на приведенный ниже код....

beforeEach(function () {
  var mockDSService = function () {
   return {
    defineResource: function (obj) {
     obj.deserialize(null, { data: {}});
    }
   }
  };

  // module configuration along with dependecies
  var moduleName = 'trinet.shared.services.Names';

  angular
   .module(moduleName, [])
   .service('DS', mockDSService)
   .constant('profileUrlConfig', mockprofileUrlConfigConstant)
   .service('Names', Names);

  angular.mock.module(moduleName);
 });

с этим фрагментом кода он автоматически выполняется и выполняет функцию десериализации

Другие вопросы по тегам