我使用茉莉和业力在角度创建测试时遇到问题。如果你能帮助我,我很感激。 控制台记录错误:[$ injector:modulerr],当一个模块由于某些异常而无法加载时,该链接声称是一个错误。
在karma配置文件中:
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),则不会发生同样的错误,但属性“控制器”#39;未定义。
答案 0 :(得分:0)
我认为您没有按预期使用$ controller。 它应该只用于加载你想要测试的控制器:
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);
});
});