Ich habe versucht, den Prozess zu testen, wenn eine Anfrage gesendet wurde, und ich möchte überprüfen, ob die Header in Ordnung sind. Was habe ich falsch gemacht?So prüfen Sie Header in jede Anfrage in Winkel?
Kontrolle dieses codepen: http://codepen.io/gpincheiraa/pen/qZPrEp
App.js
angular
.module('exampleApp')
.config(configFn);
configFn.$inject = ['$httpProvider'];
function configFn($httpProvider){
$httpProvider.interceptors.push('ApiInterceptors');
}
ApiInterceptors.js
angular
.module('exampleApp')
.factory('ApiInterceptors', factory);
factory.$inject = ['$q'];
function factory($q) {
var service = {
request: handleRequest,
};
return service;
function handleRequest(request){
request.headers['Authorization'] = 'Token token= 59a2cc5ca5fd6c5cb4dadf636d94de1a';
return request;
}
}
ApiInterceptors_spec.js
describe('State check', function(){
var httpBackend;
beforeEach(module('exampleApp'));
beforeEach(inject(eachSpec));
function eachSpec($httpBackend){
httpBackend = $httpBackend;
}
it('Should be have an Authorization header on any request', spec1);
function spec1(){
httpBackend.expectGET('http://www.exampleAPI.com', null, function(headers){
console.log(headers);
expect(headers['Authorization']).toBeDefined();
});
}
});
Können Sie eine console.log in Ihrem handle testen? Ich denke, das funktioniert nicht, weil ApiInterceptor in einer Fabrik definiert ist. Factory wird während der Konfigurationsphase nicht instanziiert. Normalerweise lege ich meine Interceptor-Definition in der Config-Phase ab, ich stelle sie nicht in einer eckigen Umgebung zur Verfügung, weil sie nicht notwendig ist, da sie an anderen Stellen als dort nicht nützlich ist. – Walfrat
@Walfrat danke für deinen Rat. Ich werde es versuchen und dann erzähle ich es dir. Beantworten Sie Ihre Frage, nein, die console.log wird nie ausgeführt. –