Я пытаюсь проверить контроллер в качестве виртуальной машины, но получаю ошибкуОшибка при тестировании с жасмином John Papa контроллера в виртуальной машине
Основной модуль:
(function() {
'use strict';
angular.module('ds', [
'ionic',
'ui.router',
'ds.controllers',
'ds.services',
'ds.filters',
'underscore',
'ionicLazyLoad',
'ngCordova',
'ngIOS9UIWebViewPatch'
])
})();
код контроллера, как показано ниже:
(function() {
'use strict';
angular
.module('ds')
.controller('LoginCtrl', LoginCtrl);
LoginCtrl.$inject = ["$scope", "$rootScope"];
function LoginCtrl($scope, $rootScope) {
var vm = this;
vm.model = { name: "controllerAs vm test" };
}
})();
мой тест жасмин:
'use strict';
describe('LoginCtrl', function() {
var LoginCtrl;
beforeEach(module('ds'));
beforeEach(function() {
inject(function($injector) {
LoginCtrl = $injector.get('$controller')('LoginCtrl', {});
});
});
it('LoginCtrl should be defined and LoginCtrl.name is equal to controllerAs vm test', function() {
expect(LoginCtrl).toBeDefined();
expect(LoginCtrl.name).toEqual("controllerAs vm test");
});
});
И получаю эту ошибку:
15 11 2016 14:40:33.608:INFO [watcher]: Changed file "/Users/roman.ishchiv/Documents/dogshows/www/modules/login/login.controller.js".
PhantomJS 2.1.1 (Mac OS X 0.0.0) LoginCtrl LoginCtrl should be defined and LoginCtrl.name is equal to controllerAs vm test FAILED
/Users/roman.ishchiv/Documents/dogshows/www/lib/ionic/js/ionic.bundle.js:13218:53
[email protected]/Users/roman.ishchiv/Documents/dogshows/www/lib/ionic/js/ionic.bundle.js:9168:24
[email protected]/Users/roman.ishchiv/Documents/dogshows/www/lib/ionic/js/ionic.bundle.js:13178:12
[email protected]/Users/roman.ishchiv/Documents/dogshows/www/lib/ionic/js/ionic.bundle.js:13104:22
[email protected]/Users/roman.ishchiv/Documents/dogshows/www/lib/angular-mocks/angular-mocks.js:3074:60
[email protected]/Users/roman.ishchiv/Documents/dogshows/www/lib/angular-mocks/angular-mocks.js:3054:46
unit-tests/login.controller.test.js:8:15
[email protected]://localhost:9876/context.js:151:17
Expected undefined to be defined.
unit-tests/login.controller.test.js:14:38
[email protected]://localhost:9876/context.js:151:17
TypeError: undefined is not an object (evaluating 'LoginCtrl.name') in unit-tests/login.controller.test.js (line 15)
unit-tests/login.controller.test.js:15:25
[email protected]://localhost:9876/context.js:151:17
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 1 of 1 (1 FAILED) ERROR (0.001 secs/0.017 secs)
и эту часть моей кармы конфигурационного файла:
files: [
'../lib/ionic/js/ionic.bundle.js',
'../lib/angular-mocks/angular-mocks.js',
'../lib/jquery/dist/jquery.js',
'../lib/angular-ui-router/release/angular-ui-router.js',
'../js/*.js',
'../js/**/*.js',
'../modules/**/*.js',
'unit-tests/*.js',
],
есть кто-либо предложения о том, как решить эту проблему или имеет руководство о том, как работать с Джоном Papa руководство по угловому стилю и модульное тестирование?
Спасибо!
Проблема была в файле конфигурации кармы. Если и использует JQuery, и должны включать ее до ионного или углового файла Как это: файлов: [ «../lib/jquery/dist/jquery.js',» ../lib/ionic/js /ionic.bundle.js ', ' ../lib/angular-mocks/angular-mocks.js ', ..... ], –