web-dev-qa-db-fra.com

Le test Jasmine ne voit pas le module AngularJS

J'essaie de tester un service Angular service avec un fichier de spécifications Jasmine. Cela nécessite qu'un module soit chargé. Voici une spécification simple conçue dans le but de charger simplement le Angular:

describe('Submission services', function () {
  it('Finds angular', function () {
    module('submissionServices');
  });
});

Lorsque j'exécute Jasmine, cela se traduit par l'erreur suivante

Running Jasmine specs...
FAIL: 1 test, 1 failure, 0.004 secs.

Submission services Finds angular. (/Users/XXX/Projects/globe_town/spec/javascripts/SubmissionsSpec.js:3)
ReferenceError: Can't find variable: module

Test ordering seed: --seed 1826
rake aborted!
Jasmine::Headless::TestFailure

Le fichier jasmine.yml contient

src_files:
  - public/javascripts/jquery.js
  - spec/javascripts/lib/angular/angular.js
  - spec/javascripts/lib/angular/angular-resource.js
  - app/assets/javascripts/services/submissions.js

stylesheets:
  - stylesheets/**/*.css

helpers:
  - helpers/**/*.js

spec_files:
  - '**/*[sS]pec.js'

src_dir:

spec_dir: spec/javascripts

Les versions du logiciel sont:

  • Rails 3.2.7
  • jasmine-core 1.2.0
  • jasmine-headless-webkit 0.8.4
  • AngularJS 1.0.2

Que dois-je faire pour que Jasmine trouve Angular?

35
oxirane

Assurez-vous d'inclure http://code.angularjs.org/1.1.0/angular-mocks.js pour les fonctions d'aide angulaire-jasmin comme module.

71
Andrew Joslin

C'est probablement une chance éloignée mais j'ai eu le même problème et j'ai découvert que mon fichier angular-mocks.js était corrompu, il y avait du HTML dedans. Je ne sais pas comment cela est arrivé. Donc, si vous obtenez cette erreur après avoir essayé de corriger, vérifiez tous vos fichiers js pour vous assurer qu'aucun d'entre eux n'est foiré ou corrompu.

1
steveareeno