Я пытаюсь выполнить проверку моего углового пользовательского сервиса, написанного на машинописном машинописном машинописи. Служба считывает глобальную переменную, определенную в объекте Window. Я обещал, так что в будущем я могу позвонить AJAX, чтобы получить эту информацию. Вот мой урезанная сервис: -
export class ProxyDetectiveService {
public static $inject = [
$window,
$q
];
constructor(private $window:ng.IWindowService,
private $q:ng.IQService) {
}
public getProxyUserObject =():ng.IPromise<any> => {
this.log.debug('Proxy User Service called, to get proxy user details');
var deferred = this.$q.defer();
var proxyDetails = this.$window.portalObject;
deferred.resolve(proxyDetails);
return deferred.promise;
};
}
Мой блок Контрольный пример: -
describe('Proxy Detective Service - Unit Test Cases',() => {
var proxyDetectiveService:any,
$window:ng.IWindowService;
beforeEach(() => {
module('myApp');
});
beforeEach(inject(($injector:ng.auto.IInjectorService, _$window_) => {
proxyDetectiveService = $injector.get('ProxyDetectiveService');
_$window_ = {
portalObject: {
proxyUserDetails: {
firstName: 'testFN',
lastName: 'testLN'
}
}
};
}));
it('should have proxy object defined', function() {
var promise = proxyDetectiveService.getProxyUserObject();
promise.then(function (response) {
expect(response).toBeDefined();
}).catch(function (response) {
expect(response).toBeUndefined();
});
});
});
Вот мои вопросы: -
Мой Тестовый пример запускается на выполнение, но я не см. обманутый объект окна в службе?
Мое обещание или предложение catch никогда не исполняются?
Есть ли какие-либо лучшие способы реализации моего сервиса? Я намерен вернуть обещание, в будущем я могу использовать вызов AJAX.