Jasmine测试没有看到AngularJS模块

时间:2012-10-17 15:56:26

标签: angularjs jasmine

我正在尝试使用Jasmine规范文件对Angular服务进行单元测试。这需要加载模块。这是一个简单的规范,旨在简单地加载Angular模块:

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

当我运行Jasmine时,会导致以下错误

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

jasmine.yml文件包含

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

该软件的版本是:

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

如何让Jasmine找到Angular?

2 个答案:

答案 0 :(得分:71)

确保将http://code.angularjs.org/1.1.0/angular-mocks.js包含在module之类的angular-jasmine-helper函数中。

答案 1 :(得分:1)

这可能是一个遥远的机会,但我有同样的问题,发现我的angular-mocks.js文件已经损坏,其中有HTML。我不知道它是如何到达那里的。因此,如果您在尝试修复后遇到此错误,请仔细检查所有js文件,以确保它们没有被搞砸或损坏。