См. здесь, например: http://www.johnpapa.net/angularjss-controller-as-and-the-vm-variable/
Как следует из названия, я следую этому руководству [http://tech.pro/tutorial/1473/getting-started-with-angularjs-unit-testing], чтобы настроить модульное тестирование, и все это отлично ИСКЛЮЧАЕТ для факта я похоже, не может обращаться к переменной vm как к моей области $.
dashboard.js
var controllerId = 'dashboard';
angular.module('app')
.controller(controllerId, ['common', 'datacontext', dashboard]);
function dashboard(common, datacontext) {
var getLogFn = common.logger.getLogFn;
var log = getLogFn(controllerId);
var vm = this;
vm.title = 'Dashboard';
dashboard.Spec.js
describe("app module", function() {
beforeEach(module("app"));
describe("dashboard", function() {
var scope,
controller;
beforeEach(inject(function($rootScope, $controller) {
scope = $rootScope.$new();
controller = $controller;
}));
it("should assign Dashboard as title", function() {
controller("dashboard", {
$scope: scope
});
expect(scope.title).toBe("Dashboard");
});
});
});
Что я пробовал: он работает (тест проходит), когда я называю '$ scope' непосредственно в зависимостях контроллеров и устанавливаю для него свойство title. Тем не менее, я хотел бы сохранить шаблон как есть.
Я также пробовал переходить в $scope непосредственно в зависимости и называть параметр контроллера как "vm"...
Отказоустойчивое сообщение Karmas: Ожидаемый undefined как "Личный кабинет"
оцените любую помощь!