Я пытаюсь написать unit test для контроллера, который вложен, но не может понять, как издеваться над тем же поведением в моем тесте.
У меня есть 2 контроллера:
function FirstController ($scope) {
$scope.childs = [{
title : 'Hello, earth!'
}];
};
function SecondController ($scope) {
$scope.child.title = $scope.child.title + $scope.$index;
};
И в моем HTML:
<div data-ng-controller="FirstController">
<div data-ng-repeat="child in childs" data-ng-controller="SecondController">
{{ child.title }}
</div>
</div>
И это работает как ожидалось (http://jsfiddle.net/tcayp/1/)
Унитесты:
// FirstController
it('Should have childs', function () {
scope = {};
ctrl = new FirstController(scope);
expect(scope.childs.length).toBeGreaterThan(0);
});
// SecondController
it('Should have inherited a child', function () {
scope = {};
ctrl = new SecondController(scope);
expect(scope.child.title).toEqual('Hello, earth!0');
});
В SecondController-test я не могу понять, как издеваться над цепочкой наследования от ng-repeat.