Я действительно надеюсь, что это тривиальная проблема. Да, у меня есть RTFM. Я фактически использую метод Angular documented для ввода контроллера, но по какой-то причине мой контроллер не определен. Основное различие здесь в том, что я привык работать над приложениями с одним модулем, и на этот раз у меня есть приложение с несколькими модулями. Я бы не подумал, что это изменит ситуацию, но ты туда. Вместо длинного описания, я перейду прямо к коду:Как я могу ввести угловой контроллер в свой модульный тест
Использование Угловая 1.2.16
Unit Test Framework: жасмин
app.js
angular.module('OBB', [
// Native AngularJS DI
'ngResource', 'ngCookies',
// bunch of modules
...
// OBB Page Modules
'OBB.home', 'OBB.buckets', 'OBB.company', 'OBB.advSearch', 'OBB.users'
])
Итак, я Я пытаюсь проверить контроллер в модуле OBB.home.
home.js
angular.module('OBB.home', ['ui.router'])
.controller('HomeCtrl', ['$log', '$rootScope', '$scope', '$state', 'AUTH_EVENTS',
function HomeCtrl ($log, $rootScope, $scope, $state, AUTH_EVENTS) {
$scope.signInFormData = {
email: null, password: null
};
//more code...
}]);
home.spec.js
describe('Unit Home Controllers: ', function() {
var homeController, scope;
beforeEach(module('OBB.home'));
beforeEach(inject(function (_$rootScope_, $controller) {
scope = _$rootScope_.$new();
homeController = $controller('HomeCtrl', {
$rootScope: _$rootScope_,
$scope: scope,
$log: {},
$state: {},
AUTH_EVENTS: {},
});
}));
it('Home Controller is correctly instantiated', inject(function() {
expect(scope).toBeDefined(); // Pass
expect(scope.signInFormData).toBeDefined(); // Fails
}));
});
Это не сработало для меня. Даже убедившись, что список параметров функции соответствует, я все равно получаю неопределенный контроллер. Что расстраивает больше всего, так это то, что сообщений об ошибках даже не дает мне намека на то, что может быть неправильным. Это просто неопределенно. Я не уверен, есть ли вложенная ошибка, потому что модуль также имеет зависимые сервисы. Я собираюсь пройти через контроллер и начать комментировать все и медленно открыть его, чтобы узнать, помогает ли это. –
Обновлен мой код, чтобы показать свои дополнения. Благодаря! –