Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS:如何对放置在HTML上的属性进行单元测试<;选择>;元素?_Javascript_Html_Angularjs_Unit Testing_Ionic - Fatal编程技术网

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谢谢。我能弄明白。