Question

J'ai codé une directive qui vérifie certaines autorisations et supprimez un élément de la DOM si les autorisations sont KO.

J'adorerais le tester, mais ... ourlet, je me frappe la tête à nouveau des murs pour faire ce travail de test simple.

J'utilise $ rootscope.digest () pour compiler un morceau de HTML.Lors de l'appel de cette fonction, Angular essaie de charger ma page principale de l'application et que je reçois la désintégration «Aucune demande de requête sans demande».

Voici donc le 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(....);
    });
});

Notez que si j'utilise réponses ("certains HTML ici"); à la place de .Pasthrough () Cela fonctionne.

merci.

Était-ce utile?

La solution

Eh bien, répondant à moi-même:

Utilisation d'un nouveau-rootcope de $ neuf (), le test passe:

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

J'espère que cela aidera quelqu'un.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top