首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReferenceError:在Karma中运行茉莉花单元测试时未定义<module>

ReferenceError:在Karma中运行茉莉花单元测试时未定义<module>
EN

Stack Overflow用户
提问于 2014-05-08 10:50:58
回答 1查看 5.5K关注 0票数 2

我得到了一个失败的测试与错误ReferenceError: dmeApp is not defined。我需要在测试中注入dmeApp吗?我正在遵循我在这里发现的一个教程:http://andyshora.com/unit-testing-best-practices-angularjs.html

app.js:

代码语言:javascript
复制
angular.module('dmeApp', ['ngRoute', 'dmeApp.library'])

.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
  $routeProvider
    .when('/library', {
      templateUrl: 'library.html',
      controller: 'LibraryController',
    })
    .when('/styleguide', {
      templateUrl: 'styleguide.html',
    })
    .otherwise({
      templateUrl: 'front.html',
    });

  $locationProvider.html5Mode(true);
}])

.controller('NavController', ['$scope', '$location', function($scope, $location) {
  $scope.linkIsActive = function(viewLocation) {
    return viewLocation === $location.path();
  };
}]);

app.spec.js:

代码语言:javascript
复制
describe('Header Navigation', function() {
  beforeEach(angular.module('dmeApp'));

  it('should have a NavController defined', function() {
    expect(dmeApp.NavController).toBeDefined();
  });
});

以及我的Karma配置(在Gruntfile.js中):

代码语言:javascript
复制
/**
 * Our Karma configuration.
 */
 karma: {
  options: {
    files: [
      '<%= vendor_files.js %>',
      '<%= vendor_files.offline_js %>', // angular is added here
      '<%= vendor_files.test_js %>', // angular-mock is added here
      'src/**/*.js', // all app files and specs are added here
    ],
    browsers: ['Chrome'],
    frameworks: ['jasmine'],        
  },
  dev: {
    reporters: 'dots',
    background: true,
  },
  continuous: {
    singleRun: true,
  },
 },
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-08 11:57:57

在spec.js中的beforeEach中,尝试如下所示:

代码语言:javascript
复制
beforeEach(inject(function($injector) {

var dmeAppNavController = $injector.get('dmeApp.NavController');

...
}

然后可以在测试用例中使用dmeAppNavController。

在测试用例中使用$injector几乎总是一个好主意。

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

https://stackoverflow.com/questions/23539630

复制
相关文章

相似问题

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