当前位置: 首页 > 面试题库 >

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

史钊
2023-03-14
问题内容

我有以下指令来自动聚焦字段:

.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();
})

我的问题有两个:

  1. 我没有调用超时刷新功能,所以没有发生超时,并且
  2. 我试图查看元素的focus属性,而仅关注focus()函数的调用更像是单元测试。focus属性确实属于e2e测试领域。


 类似资料:
  • 问题内容: 我正在python中使用该库,并且希望保持队列条目唯一。 因此,我想在添加到队列之前检查队列中是否没有“某物”,本质上是这样的函数,它可以在队列库中工作: 还是我应该使用其他库/方法来实现这一目标? 问题答案: 标准类不能被迭代或检查。 但是,它被构建为可扩展。 首先,如果你看一下源(这是从文档的链接),有钩的方法,,并且可以覆盖改变实现。查看主类下面的子类,您可以看到它们是如何做到的

  • 问题内容: 在Swift中,如何检查数组中是否存在元素?Xcode没有针对,,或的任何建议,并且快速搜索本书不会发现任何结果。知道如何检查吗?我知道有一种方法可以返回索引号,但是有没有一种方法可以返回像ruby一样的布尔值? 我需要的示例: 问题答案: 斯威夫特2、3、4、5: 是(用于元素序列的) 协议扩展方法 ,而不是早期版本中的全局方法。 备注: 该方法要求序列元素采用协议。 如果序列元素是

  • 在Swift中,如何检查数组中是否存在元素?Xcode没有关于、或的任何建议,并且在这本书中快速搜索没有任何结果。知道怎么查这个吗?我知道有一个方法返回索引号,但是有没有一个方法像Ruby的那样返回一个布尔值? 我需要的示例:

  • 问题内容: 我有一个看起来像元组的列表: 检查该元组中是否存在值的最佳方法是什么?例如,我想能够说: 并得到真 问题答案: 您正在寻找: 结合一个简单的生成器表达式,就可以完成任务。生成器表达式接受每个元组,如果包含则产生。然后在请求的第一个项目返回时返回(否则为)。因此,这就是您想要的。它也可以很好地读取- 如果有任何元组包含。 如果您要执行大量操作并且需要性能,那么可能值得设置所有值的集合以使

  • 问题内容: 我想检查Selenium中是否存在一个元素,如果存在,请将其分配给一个名称。 现在,我有这样的东西: 但是,当不存在值为9的元素时,它将返回错误。有没有一种方法可以检查它是否存在,或者类似的东西? 问题答案: 有几种选择。我推荐这些。 1.创建方法或Web驱动程序扩展。 2.计算元素,如果有1个或更多元素,则获取它。 那你可以检查

  • 我是的新手,需要检查元素是否可以在中单击,因为在和上都传递。 我尝试使用以下代码,但不起作用: