2015-02-05 67 views
2

我有问题使用茉莉花和业力在角度创建测试。如果你能帮助我,我感激不尽。 控制台日志错误:[$ injector:modulerr]带有一个链接,声称是由于某种异常导致模块无法加载时发生的错误。错误通过注入控制单元测试角度

因果报应配置文件

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' 
], 

我的测试:

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),同样的错误不会发生,但属性“控制器'是未定义的。

回答

0

我认为你不要按预期使用$控制器。 它应该只用于加载您想要测试的控制器,如下所示:

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); 
    }); 
}); 
相关问题