使用业力测试失败:模块应用程序不可用

时间:2016-12-12 09:09:00

标签: javascript angularjs

我在我的业力配置中包含了3个文件:1。angular.js,angular-mock.js和login.spec.js

这是我的login.spec.js:

describe("Hello World example", function() {

  beforeEach(module("app"));

  var loginCtrl,
  scope;

  beforeEach(inject(function ($rootScope, $controller) {
    scope = $rootScope.$new();
    loginCtrl = $controller('loginCtrl', {
      $scope: scope
    });
  }));

  it('says hello world!', function () {
    expect(scope.hello).toEqual("Hello");
  });

  });

所以我的login.js(控制器)看起来像这样

angular.module('app')
  .controller('loginCtrl', function($scope, $rootScope, $location) {
    $scope.hello = 'hello';
  });

但我得到了Module 'app' is not available!

2 个答案:

答案 0 :(得分:0)

我没有看到你创建app模块。你应该将你的测试所需的app.js和所有来源包括在你的karma.json中。

答案 1 :(得分:0)

您只需将此行添加到login.js文件的顶部:

这声明了模块:

angular.module('app', []);

这将获得模块的实例(正如您所做的那样):

angular.module('app')
  .controller('loginCtrl', function($scope, $rootScope, $location) {
    $scope.hello = 'hello';
  });

这是一个非常相似的工作Plunkr: http://embed.plnkr.co/O1otV47VxsIL5krAdUW0/preview

您还提到您已将3个文件添加到karma配置中,但未提及login.js。这也需要补充。