Я хочу использовать единичный тест в угловом, но webapp, который я работаю над ним, создается на его структуре. например:Как получить доступ к угловому модулю приложения, который определен в self invoke?
(function() {
'use strict';
angular
.module('app', [
'ngAnimate',
'ui.load',
'ui.jp',
'oc.lazyLoad'
]);})();
и один из его контроллеров:
(function() {
'use strict';
angular
.module('app')
.controller('EditorCtrl', EditorCtrl);
function EditorCtrl($scope) {
var vm = $scope;
vm.options = {
toolbar: [
['style', ['bold', 'italic', 'underline', 'clear']],
]
};
}})();
, и я понятия не имею, как использовать модульное тестирование этого приложения, потому что мой тест контроллера не могу найти. это мой контроллер и тест:
(function() {
'use strict';
angular
.module('app')
.controller('DashboardCtrl', dashboard);
describe('test dashboard', function() {
beforeEach(module('DashboardCtrl'));
var $controller;
beforeEach(inject(function (_$controller_) {
$controller = _$controller_;
}));
describe('sum', function() {
it('1 + 1 should equal 2', function() {
var $scope = {};
var controller = $controller('DashboardCtrl', {$scope: $scope});
$scope.x = 1;
$scope.y = 2;
$scope.sum();
expect($scope.z).toBe(3);
});
it('z should default to zero', function() {
var $scope = {};
var controller = $controller('DashboardCtrl', {$scope: $scope});
expect($scope.z).toBe(0);
});
});
});
function dashboard($scope) {
$scope.name = 'Dashboard';
$scope.z = 0;
$scope.sum = function() {
$scope.z = $scope.x + $scope.y;
};
}
})();
и в тесте карма показать мне эту ошибку:
Error: [$injector:modulerr] Failed to instantiate module DashboardCtrl due to:
Error: [$injector:nomod] Module 'DashboardCtrl' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
, которые указывают, что не могу найти «DashboardCtrl» контроллер.
Используйте это в файле контроллера? – moslem