2015-02-26 9 views
13

L'esecuzione sotto il test dell'unità fornisce "Errore: [$ injector: unpr] Fornitore sconosciuto: $ stateProvider < - $ state". Ho allegato angular-ui-router.min.js nel file karma.

describe("Unit tests", function() { 

    var $rootScope, $injector, $state; 
    console.log("hello"); 

    beforeEach(inject(function(_$rootScope_, _$state_, _$injector_, $templateCache) { 
    console.log("hello1"); 
    $rootScope = _$rootScope_; 
    $injector = _$injector_; 
    $state = _$state_; 
    })); 

    describe("states", function() { 
    it("verify state configuration", function() { 
     var config = $state.get("DRaaS"); 
     console.log(config, "cc"); 
    }); 
    }); 
}); 

risposta

26

Non è stato caricato alcun modulo, quindi non è disponibile alcun servizio. Aggiungi questo prima del tuoOgni:

beforeEach(module('ui.router')); 
+2

Questa risposta mi ha indirizzato nella giusta direzione. Ho dimenticato di aggiungere 'angular-ui-router' alla proprietà dei miei file all'interno di karma.conf. – Raulucco

+0

Attualmente sto assolutamente odiando il karma per il fatto che questo è effettivamente richiesto! C'è un modo per simulare/stub/falso $ stateProvider quindi non ho bisogno di richiedere 'ui-router'? Voglio essere in grado di testare il mio codice in isolamento (quindi i test di UNIT) e prendere in giro tutte queste altre dipendenze. –

+0

@AaronJanes sì, c'è. Puoi utilizzare qualcosa come $ provide.service ('$ stato', funzione ($ q) { var $ stateService = { url: "/", visualizzazioni: {}, nome: "root .signin " } }; return $ stateService; }); – BobDoleForPresident

Problemi correlati