저는 AngularJS 유닛 테스트에서 좀 새로운 기능으로 지시어로 작성된 컨트롤러 메소드를 테스트하는 데 어려움을 겪고 있습니다.AngularJS + Jasmine - 지시어에 컨트롤러 범위 쓰기 받기
이
app.directive('formLogin', ['AuthService', function(AuthService){
return {
restrict: 'E',
templateUrl: utils.baseUrl + 'partials/_home-form-login.html',
replace: true,
controller: function ($scope, $element, $http, $location) {
$scope.visible = false;
$scope.showForm = function() {
$scope.visible = !$scope.visible;
};
}
};
}]);
내 directive.js입니다 그리고 여기 내 단위 test.js
describe('formLogin ctrl', function() {
var element, scope, compile;
beforeEach(module('Application'));
beforeEach(inject(function ($rootScope, $compile) {
element = angular.element('<form-login></form-login>');
scope = $rootScope.$new();
compile = $compile(element)($scope);
}));
it('Test', function() {
expect(scope.visible).toBe(false);
})
});
그리고에 의해가 정의되지 않은 "scope.visible"올 이렇게 간다 .
"scope"변수에서 "visible"속성과 "showForm"방법을 사용한다고 $ 컨트롤러를 사용하는 방법이 있습니까?
격리 된 범위를 감속 시켰습니까? 당신은'element.isolateScope()'를 호출함으로써 그것에 접근 할 수있다. –