加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 如何在角度指令中对按键事件进行单元测试

发布时间:2020-12-17 06:58:03 所属栏目:安全 来源:网络整理
导读:我已经创建了一个编辑指令来将html输入包装在一个奇特的框架中. 现在我正在创建一个单元测试来检查一旦输入输入,就会设置表单控制器的脏状态. 这是我到目前为止所得到的,但它在第二次预期失败了. 这有什么不对? 提前致谢! describe('dirty',function () {
我已经创建了一个编辑指令来将html输入包装在一个奇特的框架中.

现在我正在创建一个单元测试来检查一旦输入输入,就会设置表单控制器的脏状态.
这是我到目前为止所得到的,但它在第二次预期失败了.

这有什么不对?

提前致谢!

describe('dirty',function () {
    it('false',function () {
        var scope = $rootScope.$new(),form = $compile('<form name="form"><edit ng-model="model"></edit></form>')(scope),input = form.find('input');
        scope.$digest();
        expect(scope.form.$dirty).toBeFalsy();
        input.triggerHandler('keydown',{ which: 65 });
        expect(scope.form.$dirty).toBeTruthy();
    });
});

编辑:

对于所有重要的事情,它归结为这个plunker(没有jQuery)…或this使用jQuery

任何的想法?

解决方法

ngKeySpec.js中的角度单位测试很有帮助:

it('should get called on a keydown',inject(function($rootScope,$compile) {
    element = $compile('<input ng-keydown="touched = true">')($rootScope);
    $rootScope.$digest();
    expect($rootScope.touched).toBeFalsy();

    browserTrigger(element,'keydown');
    expect($rootScope.touched).toEqual(true);
  }));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读