의 컨트롤러 조롱 : 나는 d1
지침의 단위 테스트에서 d1controller
컨트롤러를 조롱 어떻게어떻게 외부 컨트롤러가있는 지시어 주어진 AngularJS와 지침
.directive('d1', function() {
return {
controller: 'd1controller',
restrict: 'E',
link: function ($scope, $element, $attributes, $controller) {
$controller.doStuff();
}
};
});
를?
내 시도 :
나는 서비스 조롱 때와 같이 $provide
으로 시도 :
beforeEach(module('app', function ($provide) {
ctrlMock = jasmine.createSpyObj('ctrlMock', ['doStuff']);
$provide.value('d1controller', ctrlMock);
}));
을 그리고 나는 또한 괜찮은 행운이 있었다 $controllerProvider
beforeEach(module('app', function ($controllerProvider) {
ctrlMock = jasmine.createSpyObj('ctrlMock', ['doStuff']);
$controllerProvider.register('d1controller', ctrlMock);
}));
멋진 트릭. 구현 세부 정보를 숨기기 위해'mockDirectiveController' 헬퍼를 만들었습니다. https://gist.github.com/sylvain-hamel/9122684 – Sylvain
내 새로운 대답을 참조하십시오. – Sylvain