【问题标题】:Angular app not loading when including ngMock包含 ngMock 时未加载 Angular 应用程序
【发布时间】:2015-03-28 10:23:29
【问题描述】:

我在 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 以某种方式包装了模块吗?

亲切的问候,尼尔斯

【问题讨论】:

  • 找到解决方案了吗?

标签: angularjs karma-runner browserify browserify-shim


【解决方案1】:

其实ngMock不应该添加到“生产”项目的依赖中。

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

【讨论】:

    猜你喜欢
    • 2017-09-11
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 2020-05-09
    • 2020-02-15
    • 1970-01-01
    相关资源
    最近更新 更多