2016-01-29 2 views
0

J'ai ce fournisseur:Unité tester une aide à l'intérieur d'un fournisseur personnalisé dans AngularJS

angular.module('app').provider('appProvider', function() { 
    this.$get = Helper; 

    function Helper() { 
    function method() { 
     return true; 
    }; 

    return { 
     method: method 
    }; 
}); 

Lorsque les tests unitaires, je peux atteindre appProvider, mais pas le Helper dans les tests unitaires. J'ai essayé ceci:

describe('test', function() { 
    var prov; 

    beforeEach(angular.mock.module('app', function(appProvider) { 
    prov = appProvider; 
    })); 

    it('provider', inject(function() { 
    expect(prov.Helper.method()).toEqual(true); 
    })); 
}); 

Et obtenir cette erreur:

TypeError: 'undefined' is not an object (evaluating 'prov.Helper.method()')

La question est: Comment la méthode() dois-je atteindre afin d'évaluer est un comportement correct?

Répondre

0

Vous essayez de tester une méthode du service que votre fournisseur fournit, il semble donc un peu détourné de tester le fournisseur. Pourquoi ne pas simplement tester le service à la place?

+0

Aucune indication sur la façon de le faire lorsque le service (Helper) est déclaré à l'intérieur du fournisseur (appProvider). –

+0

Cela peut être utile: https://docs.angularjs.org/guide/services#unit-testing –