首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReferenceError:在角度测试中找不到variable: module

ReferenceError:在角度测试中找不到variable: module
EN

Stack Overflow用户
提问于 2015-08-05 16:28:39
回答 2查看 29.8K关注 0票数 23

我正在尝试为我的角度控制器写一个测试,我使用的是jasmine karmaangular-mocks,但是一直收到错误ReferenceError: Can't find variable: module

我有一点search,但是我的房间里已经有angular-mocks了。

我还能错过什么呢?

以下是我的代码:

代码语言:javascript
复制
#controller
angular.module('cook_book_ctrl', [])
.controller('cookBookCtrl', function($scope, CookBook, CookBookRecipesService){

  $scope.cookbookoptions = true;

  CookBook.list()
   .success(function(data){
     $scope.recipeList = data;
     CookBookRecipesService.loadCookBookRecipes($scope.recipeList);
   })
   .error(function(error){
   })
  });

#controller test
describe('CookBook controller spec', function(){
  var $httpBackend, $rootScope, createController, authRequestHandler

  beforeEach(module('cook_book_ctrl'));
})

#bower.json
{
  "name": "HelloIonic",
  "private": "true",
  "devDependencies": {
    "ionic": "driftyco/ionic-bower#1.0.0",
    "ionic-service-analytics": "master",
    "ionic-service-core": "~0.1.4",
    "angular-mocks": "1.3.13"
  },
  "dependencies": {
    "ng-cordova-oauth": "~0.1.2",
    "ng-tags-input": "~2.3.0",
    "angular": "~1.4.0",
    "underscore": "~1.8.3",
    "materialize": "~0.97.0"
  },
  "resolutions": {
    "angular": "~1.4.0"
  }
}


   beforeEach(module('cook_book_ctrl'));
})

更新:为清晰起见添加了屏幕截图

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-05 16:36:04

除了通过bower安装angular-mocks之外,请记住在karma配置文件中添加对angular-mocks.js的引用,如下所示

代码语言:javascript
复制
config.set({

    basePath: '../',
    port: '8000',

    files: [
      'bower_components/angular/angular.js',
      'bower_components/angular-mocks/angular-mocks.js',
      ...
    ]
票数 33
EN

Stack Overflow用户

发布于 2016-04-27 19:55:06

在我的例子中,这也是关于karma.conf.js中文件路径顺序错误的问题。

是:

代码语言:javascript
复制
// list of files / patterns to load in the browser
files: [
  'tests/*.test.js', // this should not be as first!
  'bower_components/angular/angular.min.js',
  'bower_components/angular-mocks/angular-mocks.js',
  'app/*.js',

],

应该是:

代码语言:javascript
复制
// list of files / patterns to load in the browser
files: [
  'bower_components/angular/angular.min.js',
  'bower_components/angular-mocks/angular-mocks.js',
  'app/*.js',
  'tests/*.test.js' // now it's cool
],

可能是显而易见的事情,也可能不是?;-)

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31827257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档