包含ngMock时不加载Angular应用程序

时间:2015-03-28 10:23:29

标签: angularjs karma-runner browserify browserify-shim

我在Angular中使用ngMock进行单元测试。我现在有一个browserify \ w Angular设置。我有一些奇怪的行为。当我只用require('angular-mocks');我的测试和应用程序工作加载角度模拟时。但是,如果我将其作为依赖项加载到我的Angular应用程序模块中,它就不再加载我的Angular应用程序,但我的业力测试仍然有效:

(function () {
    'use strict';

    require('angular');
    require('angular-route');
    require('angular-mocks');
    require('./home');

    angular.module('greenboxUi', [
        'ngRoute',
        //'ngMock',
        'greenboxUi.home'
    ]);
}());

如果我取消注释ngMock,我的应用程序将不再加载

我的browserify-shim:

'angular-mocks': {
       path: './app/bower_components/angular-mocks/angular-mocks.js',
       exports: 'angular.mock',
       depends: {
          angular: 'angular'
       }
 }

我的测试:

beforeEach(function(){
    module('greenboxUi.home');
    inject(function($controller){
        controller = $controller('HomeCtrl');
    });
});
it('test test', function() {
    expect(controller.hello).toBe('Hello world');
});

我的应用程序在评论'ngMock'时确实有效,但我发现它有点奇怪,因为Angular文档会用angular.module('app', ['ngMock'])加载它..是因为browserify以某种方式包装模块吗?

亲切的问候,Niels

1 个答案:

答案 0 :(得分:0)

实际上,不应该将ngMock添加到" production"的依赖项中。项目

有关详细信息,请参阅此github问题:https://github.com/angular/angular.js/issues/12137