$ rootscope.digest lancio 'non più richiesta prevista "nella prova dell'unità angolare della direttiva

StackOverflow https://stackoverflow.com//questions/21003221

  •  20-12-2019
  •  | 
  •  

Domanda

Ho codificato una direttiva che controlla alcune autorizzazioni ed elimina un elemento dal DOM se le autorizzazioni sono KO.

Amo mi piacerebbe testarlo, ma ... orlo, sto sbattendo la testa di nuovo le pareti per rendere questo semplice lavoro di prova.

Io uso $ rootscope.digest () per compilare un pezzo di html.Quando si chiama questa funzione, Angular tenta di caricare la mia pagina principale dell'app e ottengo il temuto errore "Niente più richiesta prevista".

Quindi ecco il test:

describe('Unit testing permission-needed', function() {
    var $compile;
    var $rootScope;
    var $httpBackend;

    // Load the myApp module, which contains the directive
    beforeEach(module('app'));

    beforeEach(angular.mock.module('ngMockE2E'));

    beforeEach(inject(function(_$compile_, _$rootScope_, $injector) {
        $compile = _$compile_;
        $rootScope = _$rootScope_;
        $httpBackend = $injector.get('$httpBackend'); // not sur if I can inject it like others services ?
        $httpBackend.whenGET('app/login/login.tpl.html').passThrough(); // this doesn't seem to work

    }));



    it('should replace the element with the appropriate content', function() {



        // Compile a piece of HTML containing the directive
        var element = $compile("<div permission-needed><span>Some content goes here</span></div>")($rootScope);
        $rootScope.$digest(); // BAM => "no more request expected"

        // Do the test here
        // expect(....);
    });
});
.

nota che se uso .Roggio ("alcuni html qui"); invece di .Passthrough () funziona.

Grazie.

È stato utile?

Soluzione

Bene, rispondendo a me stesso:

Usando un nuovo () Rootscope, Test sta passando:

$rootScope = _$rootScope_.$new();
.

Spero che questo aiuto qualcuno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top