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

qai*_*ais 15 unit-testing angularjs

我有以下app的yeoman-angular设置:

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

和服务:

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

以及以下测试:

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');
  });

});
Run Code Online (Sandbox Code Playgroud)

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

Error: No module: ngResource
Run Code Online (Sandbox Code Playgroud)

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

angular.module('myApp', [])
Run Code Online (Sandbox Code Playgroud)

然后测试成功运行

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

Mar*_*dig 45

在你的testacular.conf.js/karma.conf.js中你是否包括angular-resource.js; 例如

files = [
  JASMINE,
  JASMINE_ADAPTER,
  'app/vendor/angular/angular.js',
  'app/vendor/angular/angular-*.js',
Run Code Online (Sandbox Code Playgroud)