angularjs – 如何检查我的元素是否集中在单元测试中

前端之家收集整理的这篇文章主要介绍了angularjs – 如何检查我的元素是否集中在单元测试中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下指令来自动对焦一个字段:
.directive('ngAutofocus',function ($timeout) {
    return {
        restrict: 'A',link: function (scope,elm) {
                $timeout(function () {
                elm[0].focus();
            });
        }
    };
}

我将如何测试这个?我尝试了几个像下面的选择器,但都返回错误或者false:

console.log($(elm[0]).is(':focus'));

我的单元测试设置如下:

elm = angular.element('<input type="text"  name="textfield1" ng-autofocus>');
$scope.$digest();
$compile(elm)($scope);
我想出来,实际上很明显;
it('should set the focus on timeout',function () {
    spyOn(elm[0],'focus');
    $timeout.flush();
    expect(elm[0].focus).toHaveBeenCalled();
})

我的问题是双重的:

>我没有调用超时冲洗功能,所以超时没有发生,和>我正在尝试查看元素的focus属性,而只需要查看focus()函数调用更像是单元测试.焦点属性是真正属于e2e测试领域的东西.

猜你在找的Angularjs相关文章