在现有的AngularJS / Bootstrap项目上使用Jasmine,找不到模块

时间:2016-11-26 02:55:51

标签: javascript angularjs node.js twitter-bootstrap jasmine

所以我有一个现有的团队项目,需要有测试覆盖率。该项目使用的是npm和angularJS。我开始在jquery上进行npm安装,以及jasmine和angular-mocks。我认为一个好的,简单的起点(没有太多的测试经验)将与路由。我在这里定义了一些非常基本的路由

app.config(['$routeProvider', function ($routeProvider) {
  $routeProvider
    .when("/", 
        {   templateUrl: "partials/home/home.html", 
            controller: "PageCtrl"
        })
    // else 404
    .otherwise("/404", 
        {   templateUrl: "partials/404.html", 
            controller: "PageCtrl"
        });
}]);

我开始写测试。从网上获得的一个非常简单的例子开始

describe('Route testing', function () {

  beforeEach(module('tutorialWebApp'));


  it('should route accordingly', inject( function ($route) {
    expect($route.routes['/'].controller).toBe('PageCtrl');
    expect($route.routes['/'].templateUrl).toEqual('partials/home/home.html');
  }));
});

我收到类型错误:模块不是一个函数,指向我的beforeEach行。我研究了这个问题,我找到的解决方案都没有让我取得任何进展。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

beforeEach 接受回调函数。您的代码正在调用模块函数,该函数显然不会返回函数。您对模块的调用必须包含在回调函数中。像这样:

beforeEach(function(){
    module('tutorialWebApp');

    // some other code
});