角度で単体テストを使用したいのですが、webapp
私が取り組んでいるのは、その構造に基づいて作成されています。例えば :
(function() {
'use strict';
angular
.module('app', [
'ngAnimate',
'ui.load',
'ui.jp',
'oc.lazyLoad'
]);})();
そしてそのコントローラーの1つ:
(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] モジュール DashboardCtrl のインスタンス化に失敗しました: エラー: [$injector:nomod] Module 'DashboardCtrl' is not available! モジュール名のつづりを間違えたか、モジュールをロードするのを忘れました。モジュールを登録する場合は、依存関係を 2 番目の引数として指定してください。
"DashboardCtrl"
これは、コントローラーが見つからないことを示しています。