Tests dans AngularJS: Erreur de référence de la fonction d'injection

J'essaie de tester le code ci-dessous:

describe('myService test', function () { describe('when I call myService.one', function () { beforeEach(angular.module('TargetMarketServices')); it('returns 1', inject(function (imagesRepository) { expect(true).toEqual(true); })); }); }); 

Lorsque ce code est exécuté, j'obtiens cette erreur:

 TypeError: 'undefined' is not a function (evaluating 'this.func.apply(this.spec)') at http://localhost:8080/testacular.js:76 at http://localhost:8080/context.html:35 ReferenceError: Can't find variable: inject at /home/peter/Dropbox/AngularJS/set-component/test/sets/sets-ihm.js:6 at /home/peter/Dropbox/AngularJS/set-component/test/sets/sets-ihm.js:8 at /home/peter/Dropbox/AngularJS/set-component/test/sets/sets-ihm.js:10 

PhantomJS 1.8: Exécuté 1 de 3 (1 FAILED) (ignoré 2) (0.072 secs / 0.01 secs)

Pour mon test, j'utilise Testacular avec Jasmine et PhantomJS.

AngularJS fournit deux bibliothèques de test:

  • Angular-mocks.js
  • Angular-scenario.js

Les mailles angulaires sont utilisées pour les tests de Jasmine et Karma. Il publie les modules mondiaux module () et injecter () à utiliser dans vos tests de spécifications Jasmine. Cela signifie que vous devez charger le script angular-mocks.js (après avoir chargé la bibliothèque / script angular.js)

Le scénario angulaire n'est utilisé que pour les tests e2e.

La ligne où vous avez

 beforeEach(angular.module('TargetMarketServices')); 

devrait être

 beforeEach(module('TargetMarketServices')); 

Si vous examinez le projet angular-phonecat dans test / unit / directivesSpec.js, il utilise

 beforeEach(module('myApp.directives')); 

Si je le modifie pour utiliser angular.module à la place:

 beforeEach(angular.module('myApp.directives')); 

Alors j'ai cette erreur lors de l'exécution de testatique aussi:

 TypeError: 'undefined' is not a function (evaluating 'this.func.apply(this.spec)')