Nel mio app.config
sto utilizzando un servizio chiamato ui-router-extras FutureStates per creare dinamicamente gli stati dai risultati di una chiamata REST. Uno degli effetti collaterali di questo è che quando i miei test eseguiti, dal momento che sto caricando il mio modulo applicazione principale in tutti loro, tutti i test effettuare una chiamata a tale servizio e, quindi, tutte le prove falliscono con unMocking di richieste HTTP globali per tutte le suite in Angular e Jasmine
Error: Unexpected request: GET /api/v1/config
No more request expected
I può aggiungere quanto segue alle mie suite di test e risolve il problema, registrando questa chiamata con il backend in modo che si aspetti.
beforeEach(inject(function(_$httpBackend_){
_$httpBackend_.whenGET(/\/api\/v1\/config.*/).respond([]);
}));
Il problema è che questo dovrebbe essere aggiunto ad ogni suite di test, che nella mia app modulare è un sacco di codice bagnato. Quello che sto cercando è un modo per definire questa aspettativa globalmente una volta per tutte i test (in un file globale karma, o mi accontenterò persino di un servizio/importazione su una riga da inserire nelle mie suite) o se il mio setup di prova o app.config
è impostato in modo inefficiente per migliorarlo.
Quello che ho provato finora
// Defined in a tests-global.js file listed in my karma files array
beforeEach(inject(function(_$httpBackend_){
_$httpBackend_.whenGET(/\/api\/v1\/req_params.*/).respond([]);
}));
che non riesce con Error: Injector already created, can not register a module!
poiché nei miei singoli suite di test che io chiamo beforeEach(module('x'));
di utilizzare moduli che del modulo e non si può fare che dopo un inject()
.
Ho anche provato
// Defined in a tests-global.js file listed in my karma files array
beforeEach(function() {
var $injector = angular.injector(['ngMock']);
$httpBackend = $injector.get('$httpBackend');
$httpBackend.whenGET(/\/api\/v1\/req_params.*/).respond([]);
});
che produce nessun errore in più, ma anche non risolve il problema Unexpected request
.
C'è un modo per gestire le aspettative per tutti i test, o se questo è un segno che la mia struttura di test è impostata male, un modo per strutturare meglio il mio codice/test?