通过注入控制单元来testingangular度的错误

我有问题创buildtestingangular度使用茉莉花和业力。 如果你能帮助我,我很感激。 控制台日志错误:[$ injector:modulerr]带有一个链接,声称是由于某种exception导致模块无法加载时发生的错误。

在业力configuration文件:

files: [ 'bower_components/angular/angular.min.js', 'bower_components/angular-route/angular-route.min.js', 'node_modules/angular-mocks/angular-mocks.js', 'www/lib/masks.min.js', 'www/lib/ui-utils-mask.js', 'www/js/app.js', 'www/js2/*.js', 'tests/*.test.js' ], 

我的testing:

 describe('Register', function () { beforeEach(angular.mock.module('app', ['onsen', 'ui.utils.masks'])); var $controller; beforeEach(inject(function (_$controller_) { $controller = _$controller_; })); describe('bla bla bla', function () { it('tesye ', function () { var $scope = {}; console.log("$controler: " + $controller); }); }); }); 

如果我评论第4行和第5行(beforeEach),同样的错误不会发生,但属性“控制器”是未定义的。

我认为你不要按照预期使用$控制器。 它只能用来加载你想testing的控制器,像这样:

 var ctrl, $scope; beforeEach(inject(function ($controller, _$rootScope_){ $scope = _$rootScope.$new(); ctrl = $controller('MyCtrl', {$scope: $scope}); })); describe('bla bla bla', function () { it('tesye ', function () { console.log("ctrl" + ctrl); console.log("My controller scope "+$scope); }); });