Ho bisogno della mia app per eseguire alcune configurazioni in fase di esecuzione vi un endpoint HTTP.Test unitario durante il caricamento di elementi nell'app eseguita con AngularJS
Ho scritto un servizio semplice per farlo:
module.factory('config', function ($http, analytics) {
return {
load: function() {
$http.get('/config').then(function (response) {
analytics.setAccount(response.googleAnalyticsAccount);
});
}
}
});
Avanti, io chiamo questo modulo in un blocco corsa di mio modulo app:
angular.module('app').***.run(function(config) {
config.load();
});
tutto funziona bene quando l'applicazione è in esecuzione ma nei miei test unitari, ottengo questo errore: "Errore: richiesta inaspettata: GET/config"
So cosa significa ma non so come deriderlo quando succede da un blocco di corsa.
Grazie per il vostro aiuto
EDIT per aggiungere spec
chiamata a questo prima di ogni
beforeEach(angular.mock.module('app'));
Abbiamo provato questo per deridere $ httpBackend:
beforeEach(inject(function($httpBackend) {
$httpBackend.expectGET('/config').respond(200, {'googleAnalyticsAccount':});
angular.mock.module('app')
$httpBackend.flush();
}));
Ma ottenuto:
TypeError: Cannot read property 'stack' of null
at workFn (/Users/arnaud/workspace/unishared-dredit/test/lib/angular/angular-mocks.js:1756:55)
TypeError: Cannot read property 'stack' of null
at workFn (/Users/arnaud/workspace/unishared-dredit/test/lib/angular/angular-mocks.js:1756:55)
TypeError: Cannot read property 'stack' of null
at workFn (/Users/arnaud/workspace/unishared-dredit/test/lib/angular/angular-mocks.js:1756:55)
EDIT dall'aggiornamento per AngularJS 1.0.6
Da quando ho aggiornato a 1.0.6 AngularJS, consigliato da Igor dal team angolare, il problema è andato, ma ora ora ho questo, che suona più "normale" ma non riesco ancora a capire come farlo funzionare.
Error: Injector already created, can not register a module!
Ho anche questo errore durante il test di 'run()' – halfcube
L'ho infine spostato nel mio controller di root dell'applicazione per renderlo testabile. –