测试Angular Service会出错:No module:ngResource

时间:2013-03-27 11:35:09

标签: unit-testing angularjs

我使用以下应用程序设置了yeoman-angular:

angular.module('myApp', ['ngResource','ui.bootstrap'])
  .config(['$routeProvider', function ($routeProvider) {
      $routeProvider
      ...
  }]);

和服务:

angular.module('myApp')
  .factory('UserSvc', [function() {
        return {
            name : '',
            topicOrder: 'lec_type',
        };
    }]);

以及以下测试:

describe('Service: UserSvc', function () {

  beforeEach(module('mfApp'));

  var UserSvc;
  beforeEach(inject(function(_UserSvc_) {
    UserSvc = _UserSvc_;
  }));

  it('should do something', function () {
    expect(UserSvc.topicOrder).toEqual('lec_type');
  });

});

我已经尽力在测试中注入$ resource(尽管srvice本身并不依赖于ngResource),但是当我运行测试时,我得到了这个错误

Error: No module: ngResource

如果我从模块本身中删除依赖项,

angular.module('myApp', [])

然后测试成功运行

我真的尝试了一切但失败了

2 个答案:

答案 0 :(得分:45)

你在testacular.conf.js / karma.conf.js中的

是否包括angular-resource.js; e.g。

files = [
  JASMINE,
  JASMINE_ADAPTER,
  'app/vendor/angular/angular.js',
  'app/vendor/angular/angular-*.js',

答案 1 :(得分:3)

在添加新组件后,请记得重新启动您的Testacular / Karma会话。