2

Angular での単体テストに ngMock を使用しています。これで、browserify \w Angular セットアップができました。私はいくつかの奇妙な行動をしています。require('angular-mocks'); テストとアプリの作業で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 docs でロードするため、少し奇妙にangular.module('app', ['ngMock'])感じます.. browserify がモジュールを何らかの方法でラップするためですか?

よろしく、ニールス

4

1 に答える 1

0

実際、ngMock を「本番」プロジェクトの依存関係に追加するべきではありません。

詳細については、この github の問題を参照してください: https://github.com/angular/angular.js/issues/12137

于 2015-08-31T09:50:20.197 に答える