In meinem app.config
Ich verwende einen Service namens ui-router-extras FutureStates, um dynamisch aus den Ergebnissen eines REST-Aufrufs Staaten zu erstellen. Eine der Nebenwirkungen ist, dass, wenn meine Tests ausführen, da ich in sie alle meine Haupt-App-Modul bin Laden, alle Tests einen Anruf zu diesem Dienst zu machen und damit alle Tests fehlschlagen mit einemMocking globale HTTP-Anfragen für alle Suiten in Angular und Jasmine
Error: Unexpected request: GET /api/v1/config
No more request expected
I kann zu meinen Testsuiten folgendes hinzufügen und behebt das Problem, indem er diesen Aufruf mit dem Backend registriert, so dass er es erwartet.
beforeEach(inject(function(_$httpBackend_){
_$httpBackend_.whenGET(/\/api\/v1\/config.*/).respond([]);
}));
Das Problem ist, dass diese zu jeder Testsuite hinzugefügt werden müssten, die in meinem modularen app viel nasser Code. Was ich suche, ist entweder eine Möglichkeit, diese Erwartung global einmal für alle Tests zu definieren (entweder in einer globalen Karma-Datei, oder ich würde mich sogar mit einem Service/einzeiligen Import in meinen Suiten begnügen) oder Wenn mein Test-Setup oder app.config
ineffizient eingerichtet ist, um das zu verbessern.
Was ich versucht habe bisher
// Defined in a tests-global.js file listed in my karma files array
beforeEach(inject(function(_$httpBackend_){
_$httpBackend_.whenGET(/\/api\/v1\/req_params.*/).respond([]);
}));
die seit in meinen individuellen Testsuiten mit Error: Injector already created, can not register a module!
versagt ich beforeEach(module('x'));
nenne dieses Moduls der Module zu verwenden, und Sie können nicht tun, dass nach einem inject()
.
Ich habe auch versucht,
// 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([]);
});
, die keine zusätzlichen Fehler produziert, aber auch nicht das Unexpected request
Problem nicht lösen.
Gibt es eine Möglichkeit, für alle Tests zu erwarten, oder wenn dies ein Zeichen dafür ist, dass meine Teststruktur schlecht eingerichtet ist, eine Möglichkeit, meinen Code/Tests besser zu strukturieren?