반응형
Jasmine에서 "Controller as" 구문으로 스코프 변수를 사용하는 방법?
자스민을 각도로 사용하고 있습니다.JS 테스트.제 견해로는 "Controller as" 구문을 사용하고 있습니다.
<div ng-controller="configCtrl as config">
<div> {{ config.status }} </div>
</div>
자스민에서 이 "범위" 변수를 어떻게 사용할 수 있습니까?"컨트롤러"란 무엇을 가리킵니다.내 테스트는 다음과 같습니다.
describe('ConfigCtrl', function(){
var scope;
beforeEach(angular.mock.module('busybee'));
beforeEach(angular.mock.inject(function($rootScope){
scope = $rootScope.$new();
$controller('configCtrl', {$scope: scope});
}));
it('should have text = "any"', function(){
expect(scope.status).toBe("any");
});
});
부르기scope.status
확실히 다음 오류로 끝납니다.
Expected undefined to be "any".
업데이트: 컨트롤러(타입스크립트에서 컴파일된 자바스크립트)는 다음과 같습니다.
var ConfigCtrl = (function () {
function ConfigCtrl($scope) {
this.status = "any";
}
ConfigCtrl.$inject = ['$scope'];
return ConfigCtrl;
})();
해결책은 테스트에서 컨트롤러를 인스턴스화할 때 "controller as" 구문을 사용하는 것입니다.구체적으로:
$controller('configCtrl as config', {$scope: scope});
예상(scope.config.status).Be("any");
이제 다음 사항이 전달됩니다.
describe('ConfigCtrl', function(){
var scope;
beforeEach(angular.mock.module('busybee'));
beforeEach(angular.mock.inject(function($controller,$rootScope){
scope = $rootScope.$new();
$controller('configCtrl as config', {$scope: scope});
}));
it('should have text = "any"', function(){
expect(scope.config.status).toBe("any");
});
});
우리가 사용할 때.controller as
구문, $rootScope을 테스트에 주입할 필요가 없습니다.다음 사항들이 잘 작동될 것입니다.
describe('ConfigCtrl', function(){
beforeEach(module('busybee'));
var ctrl;
beforeEach(inject(function($controller){
ctrl = $controller('ConfigCtrl');
}));
it('should have text = "any"', function(){
expect(ctrl.status).toBe("any");
});
});
언급URL : https://stackoverflow.com/questions/18473574/how-to-use-scope-variables-with-the-controller-as-syntax-in-jasmine
반응형
'programing' 카테고리의 다른 글
jQuery: 비어 있지 않은 데이터 속성을 선택하시겠습니까? (0) | 2023.10.05 |
---|---|
치명적 오류: 'WP_Customize_Control' 클래스를 찾을 수 없음 - WordPress (0) | 2023.10.05 |
jQuery clone() 이벤트 바인딩을 복제하지 않음(on()이(가) 있는 경우에도) (0) | 2023.10.05 |
VBA에서 간단한 문자열을 바이트 배열로 변환하는 방법은? (0) | 2023.10.05 |
화살표 함수로 '이것'을 묶을 수 있습니까? (0) | 2023.10.05 |