0

モジュール構成ブロックに以下があります。

var appModule = angular.module('myApp',['ngRoute'])
.config(['$httpProvider', '$routeProvider', '$locationProvider', '$translateProvider', function ($httpProvider, $routeProvider, $locationProvider, $translateProvider) {

    $locationProvider.html5Mode(true)

    $routeProvider
        .when('/services/main', {templateUrl: '/services/main/html/main.html', controller: 'MainCtrl', resolve: {
            myVar: function (varService) {
                return varService.invokeService();
            }
        }})
}])

仕様ファイル:

describe("Unit Testing: config - ", function() {

var appModule;
var routes;

beforeEach(function() {
    appModule = angular.module("myApp");
});

it('should test routeProvider', function() {

      inject(function($route, $location, $rootScope) {
          routes = $route;
      });
    }); 
});

ただし、テストの実行中に次のエラーが発生します。

Unit Testing: config -  should test routeProvider FAILED
Error: [$injector:unpr] http://errors.angularjs.org/1.2.15/$injector/unpr?p0=%24routeProvider%20%3C-%20%24route
    at Error (native)

私のカルマ設定には angular-route.min.js ファイルが含まれています。どんな提案も役に立ちます。

4

1 に答える 1

1

この問題は、angular.module の代わりに angular.mock.module を使用することで解決されました。

appModule = angular.mock.module("myApp");

モックを使用してモジュールを挿入する必要があることがわかりました。これには、構成と、モジュールを使用して新しいモジュールを登録する場所が含まれています。したがって、すでに登録されているモジュールを参照している場合は、angular.mock.module を使用する必要があります。

ドキュメントには次のように書かれています:

This function registers a module configuration code. It collects the configuration information which will be used when the injector is created by inject.
于 2014-06-04T07:55:06.753 に答える