이미 물어 본 question 요점은 터미널에 범위가 없지만 Chrome 디버깅 도구에 존재합니다. 대답에도 불구하고 그것은 고쳐지지 않았다.Jasmine, AngularJs를 사용하여 _.defer()를 테스트하는 방법
질문은 벨로우 명령어, 특히 expect(scope.measurementScroll).toBe(true);
라인을 테스트하는 올바른 구문입니다. 웹을 통해 파고하지만 내 경우에는 밑줄 방법 _.defer()
이 어디에서 대부분의 질문이 $q.defer()
에 관련된 모든 비슷한 질문을 찾을 수 없습니다
컨트롤러
'use strict';
angular.module('myApp')
.controller('MeasurementsTimelineCtrl', ['$scope', '$state', 'Measurements', function($scope, $state, Measurements) {
$scope.measurements = null;
var userId = $scope.currentUser ? $scope.currentUser.id : null;
if (userId) {
var listOfMeasurements = Measurements.userIndex(userId);
listOfMeasurements.then(function(data){
$scope.measurements = data;
$scope.$broadcast('measurements-updated', $scope.measurements);
});
}
}]);
지침 :
'use strict';
angular.module('myApp')
.directive('dashboardMeasurementTimeline', ['$window', function($window) {
return {
restrict: 'E',
templateUrl: 'myView.html',
controller: 'MeasurementsTimelineCtrl',
link: function(scope, element){
scope.$on('measurements-updated', function(measurements) {
_.defer(function(){
if(measurements) {
scope.measurementScroll = true;
}
});
});
}
};
}]);
테스트
'use strict';
describe('Directive: dashboardMeasurementTimeline', function() {
var $rootScope, $compile, element, scope;
beforeEach(function() {
module('myApp');
inject(function($injector) {
$rootScope = $injector.get('$rootScope');
$compile = $injector.get('$compile');
});
scope = $rootScope.$new();
element = angular.element('<dashboard-measurement-timeline></dashboard-measurement-timeline>');
element = $compile(element)(scope);
scope.currentUser = {id : 'someId'};
scope.$digest();
scope.measurements = [{id: 'someId', time_of_test: 'Tue, 30 Dec 2014 14:00:00 -0000'},
{id: 'someId', time_of_test: 'Thu, 20 Nov 2014 03:00:00 -0000'},];
scope.$broadcast('measurements-updated', scope.measurements);
scope.$apply();
});
it('should assign true value to measurementScroll', function() {
expect(scope.measurementScroll).toBe(true);
});
});
재스민 1.3 또는 2.0? – tasseKATT
내가 사용하는 플러그인은'karma-jasmine : 0.1.5'입니다. 인터넷 검색 중에 Jasmine 2.0과 동등하다는 것을 알았습니다. – Max