私はこれを理解するのに苦労しています。テストスクリプトの作成を開始しています。少し遅くても。しかし、単体テストは良い習慣です。まず、2 つのスコープ モデル (scope.global と scope.security) をテストしたいだけですが、MainCtrl が関数ではないという奇妙なエラーが発生しました。
'use strict';
/* Controllers */
angular.module('mainCtrl', ['LocalStorageModule'])
.controller('MainCtrl', ['$scope' ,'$rootScope', '$location', 'Api', 'Security', 'Utils', 'localStorageService',function (scope, rootScope, location, Api, Security, Utils, session) {
console.log('main js loaded');
// $scope.main = {};
scope.global = {};
scope.security = Security;
....
}]);
私のcontrollerSpec.js
describe('controllers MainCtrl', function(){
beforeEach(function(){
module('Services.api'),
module('LocalStorageModule')
});
describe('MainCtrl', function() {
var scope, api, security, session;
beforeEach(inject(function($rootScope, $controller ,$location, Api, localStorageService){
scope = $rootScope.$new();
$location = $location;
$controller("MainCtrl", {
$scope : scope,
localStorageService : localStorageService,
Api : Api
});
}));
it('should create "usertype" model with empty list', function(){
expect(scope.global).toBe(undefined);
});
});
});
上記のコードからのエラー結果:
Chrome 24.0 (Linux) controllers MainCtrl MainCtrl should create "usertype" model with empty list FAILED
Error: Argument 'MainCtrl' is not a function, got undefined
ブラウザーで webapp をテストしましたが、この MainCtrl が機能していません。助けてください。