繁体   English   中英

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

[英]testing using karma failed : Module app is not available

我在业力配置中包含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!

我看不到您正在创建应用程序模块。 您还应该将app.js以及测试所需的所有资源都包括到karma.json中。

您只需要将此行添加到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个文件,而没有提及login.js。 这也需要添加。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM