出现错误“模块未定义”怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (50)

我试图在我的项目中运行默认的服务单元测试(从GitHub上的Angular Seed项目中获取),但是一直出现“模块未定义”错误“。

我的测试配置如下:

basePath ='../'; files = [ 'public / javascripts / lib / jquery-1.8.2.js', 'public / javascripts / lib / angular.js', 'public / javascripts / lib / angular- .js', 'public / app.js ', 'public / controllers / .js', 'public / directives.js', 'public / filters.js', 'public / services.js', JASMINE, JASMINE_ADAPTER, 'public / javascripts / lib / angular-mocks。 js', 'test / unit / *。js']; autoWatch = true; browsers = ['Chrome']; junitReporter = {outputFile:'test_out / unit.xml',suite:'unit'};

该服务:

angular.module('myApp.services', []).
  value('version', '0.1');

测试这样:

'use strict';

describe('service', function() {
  beforeEach(module('myApp.services'));


  describe('version', function() {
    it('should return current version', inject(function(version) {
      expect(version).toEqual('0.1');
    }));
  });
});

而通过测试运行测试时的错误是这样的:

ReferenceError: module is not defined

提问于
用户回答回答于
用户回答回答于

其实是因为jasmine.js必须在angular-mocks.js之前加载。

angular-mocks.js检查Jasmine是否被加载。

window.jasmine && (function(window) {

[...]

  window.module = angular.mock.module = function() {
    var moduleFns = Array.prototype.slice.call(arguments, 0);
    return isSpecRunning() ? workFn() : workFn;
    /////////////////////
    [...]
  };

扫码关注云+社区