Javascript AngularJS:如何对放置在HTML上的属性进行单元测试<;选择>;元素?
我在单元测试中设置了以下各项:Javascript AngularJS:如何对放置在HTML上的属性进行单元测试<;选择>;元素?,javascript,html,angularjs,unit-testing,ionic,Javascript,Html,Angularjs,Unit Testing,Ionic,我在单元测试中设置了以下各项: 'use strict'; describe('Unit Testing the select-backdrop directive', function() { var $scope, $compile, $ionicBackdrop; beforeEach(module(function($provide) { $provide.value($ionicBackdrop, {}); })); beforeE
'use strict';
describe('Unit Testing the select-backdrop directive', function() {
var $scope, $compile, $ionicBackdrop;
beforeEach(module(function($provide) {
$provide.value($ionicBackdrop, {});
}));
beforeEach(inject(function(_$rootScope_, _$compile_, _$ionicBackdrop_) {
$scope = _$rootScope_.$new();
$compile = _$compile_;
$ionicBackdrop = _$ionicBackdrop_;
$scope.items = ['Pizza', 'Gyro', 'Burger'];
$scope.model = $scope.items[0];
}));
it('Should attach a "focus" and "blur" event to a <select> element', function() {
var element = $compile('<select ng-model="model" ng-options="item for item in items" select-backdrop></select>')($scope);
$scope.$digest();
console.log(element.html());
expect(element.find('option').length).toBe(3);
});
});
“严格使用”;
描述('单元测试选择背景指令',函数()){
var$scope、$compile、$IonicBackground;
每个模块之前(功能($PROFECT){
$provide.value($IonicBackground,{});
}));
beforeach(注入(函数($rootScope,$compile,u$ionicbackground){
$scope=\$rootScope\$new();
$compile=\$compile;
$IonicBackground=\$IonicBackground;
$scope.items=['Pizza','Gyro','Burger'];
$scope.model=$scope.items[0];
}));
它('应该将“焦点”和“模糊”事件附加到元素',函数(){
var元素=$compile(“”)($scope);
$scope.$digest();
log(element.html());
expect(element.find('option').length).toBe(3);
});
});
我正在测试select background指令。但是,
$compile
返回的是选项的列表,而不是select
元素。有什么我忘记做的吗?Compile正在返回
标记,但由于您正在记录element.html()
,它正在打印
标记的内容。如何访问select标记?使用element.attr('attributeName')访问属性。编辑:。@CalebWilliams谢谢。我能够理解。Compile返回
标记,但由于您正在记录element.html()
,它正在打印
标记的内容。如何访问select标记?使用element.attr('attributeName')访问属性。编辑:。@CalebWilliams谢谢。我能弄明白。