Я создаю свои контроллеры с синтаксисом module().controller()
.Использование angular.module(). Controller() с тестами
angular.module('App', []);
angular.module('App').controller('PhoneListCtrl', ['$scope', function ($scope) {
'use strict';
$scope.phones = [
{
"name": "Nexus S",
"snippet": "Fast just got faster with Nexus S."
},
{
"name": "Motorola XOOM™ with Wi-Fi",
"snippet": "The Next, Next Generation tablet."
},
{
"name": "MOTOROLA XOOM™",
"snippet": "The Next, Next Generation tablet."
}
];
}]);
Это отлично работает. Но теперь я хочу протестировать его с жасмином, и мой тест ответил
ReferenceError: AppController is not defined
.
Мой тест:
/* jasmine specs for controllers go here */
describe('PhoneCat controllers', function() {
describe('PhoneListCtrl', function() {
it('should create "phones" model with 3 phones', function() {
var scope = {},
ctrl = new PhoneListCtrl(scope);
expect(scope.phones.length).toBe(3);
});
});
});
Если изменить контроллер к классической функции, тест работает нормально.
Что мне не хватает?
После нескольких тестов, я обнаружил, что из, что я должен загрузить модуль перед разрешением контроллера. beforeEach (модуль ('App')); – S3PP3L
Почему все примеры и ваш код используют 'var ctrl = ...'? Эта переменная никогда не используется, и если я ее правильно понимаю, она всегда '{}'. – nh2
, откуда берутся функции ввода и модуля? когда i console.log (typeof module), я получаю undefined, когда я запускаю свой тест. – skaterdav85