今天推荐一款来自angularjs源码的单元测试辅助库browserTrigger,这是来自于ngScenario的一段代码。主要用户触发浏览器型行为更新ng中scope view model的值。

这是angularjs源码中单元测试的使用browserTrigger的实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
it('should set the model to empty string when empty option is selected'function() {
    scope.robot = 'x';
    compile('<select ng-model="robot">' +
              '<option value="">--select--</option>' +
              '<option value="x">robot x</option>' +
              '<option value="y">robot y</option>' +
            '</select>');
    expect(element).toEqualSelect('', ['x'], 'y');
    browserTrigger(element.find('option').eq(0));
    expect(element).toEqualSelect([''], 'x''y');
    expect(scope.robot).toBe('');
  });

  

在这段代码中给browserTrigger传入你希望选择的select option,则它会帮助你tigger change,选中当前option,更触发更新ng select的viewmodel。

在browserTrigger中还为我们做了很多其他输入框或者html控件的触发接口,同时也加入了浏览器的兼容性。使得我们的测试更加方便不用考虑浏览器兼容性或者不同的html控件trigger不同的事件去更新scope的值。

具体更多信息请参考ng的官方测试和browserTrigger源码。

本文转自破狼博客园博客,原文链接:http://www.cnblogs.com/whitewolf/p/3807063.html,如需转载请自行联系原作者

angularjs之browserTrigger相关推荐

  1. AngularJS和DataModel

    通常,在AngularJS中使用JSON作为存储数据的模型.我们可能这样在controller中写model: app.controller('BookController',['$scope',fu ...

  2. AngularJS 杂项知识点

    1.要用ngChange要同时使用ngModel,下拉选择获取当前选中值. 2.打包代替动态加载(js文件) requirejs真正的价值在于模块化,不是动态加载,angularjs本身有模块化机制, ...

  3. angularjs post 跨域

    web api搞好了:用Ajax妥妥的:但是前端用的AngulagJS,也懒得再换为Ajax了: 但是问题来了:提示: 已拦截跨源请求:同源策略禁止读取位于 http://x.x.x.x:port/a ...

  4. AngularJS 指令

    1. AngularJS指令的特点: AngularJS通过被称为指令的新属性来扩展HTML,指令的前缀为ng-. AngularJS通过内置的指令来为应用添加功能. AngularJS允许你自定义指 ...

  5. AngularJS中的按需加载ocLazyLoad

    欢迎大家讨论与指导 : ) 初学者,有不足的地方希望各位指出 一.前言 ocLoayLoad是AngularJS的模块按需加载器.一般在小型项目里,首次加载页面就下载好所有的资源没有什么大问题.但是当 ...

  6. 【12】AngularJS 事件

    AngularJS 事件 AngularJS 有自己的 HTML 事件指令. ng-click 指令 ng-click 指令定义了 AngularJS 点击事件. <div ng-app=&qu ...

  7. Angular的ChangeDetectorRef.detectChanges()实现angularJS的$apply()方法,强制刷新数据渲染

    在Javascript代码里,都是按照一定顺序来执行的,当轮到一个代码片段执行的时候,浏览器就只会去执行当前的片段,不会做任何其他的事情.所以有时候一些做得不是很好的网页,当点击了某个东西之后会卡住, ...

  8. AngularJS学习笔记(3)——通过Ajax获取JSON数据

    通过Ajax获取JSON数据 以我之前写的与用户交互的动态清单列表为例,使用JSON前todo.html代码如下: <!DOCTYPE html> <html ng-app=&quo ...

  9. angularjs 学习笔记 简单基础

    angularjs是谷歌公司的一个项目,弥补了hml在构建方面的不足,通过指令(directive)来扩展html标签,可以使开发者使用html来声明动态内容. angularjs主要用来开发单页应用 ...

最新文章

  1. 【数据分析】可视化分类型变量,我一般使用这6种图形
  2. ubuntu mysql innodb_Ubuntu MYSQL环境搭建
  3. VC6,SDI视图改变背景颜色的方法
  4. cheungssh mysql密码_CheungSSH安装及基本使用
  5. WebService之初体验
  6. Kerberos的基本命令操作
  7. 如何对react进行性能优化
  8. [Node.js] rsaaes 加密解密
  9. Scala 函数式编程(一) 什么是函数式编程?
  10. python暴力解压rar压缩包
  11. unity 预编译指令
  12. 如何将GMS功能移植到Android系统中
  13. Mybatis自定义轻量级分页组件(易集成,易拓展)
  14. 19.调整数组奇偶数
  15. 共同父域下的单点登录
  16. Windows无法访问 请检查名称的拼写。否则,网络可能有问题...错误代码:0x80004005
  17. google play aab上传PAD的使用流程
  18. poj2287 田忌赛马
  19. 属性与意图识别_攻击意图动态识别模型
  20. (转)Android图形系统分析与移植--六、framebuffer研究

热门文章

  1. idea创建、运行、打包控制台程序
  2. BZOJ 1867 [Noi1999]钉子和小球 DP
  3. 64位内核开发第五讲,调试与反调试
  4. Vi编辑器中查找替换
  5. 研发部 架构师 定义解读
  6. Bind和Eval的区别详解(ZT)
  7. python中if brthon环境安装包_Ant、Gradle、Python三种打包方式的介绍
  8. oracle加并行变慢,并行设置不当导致数据处理速度变慢
  9. 计算机软件与程序没有任何关系,提示“该文件没有与之关联的程序来执行该操作”怎么解决?...
  10. PyTorch Upsample() 函数实现上采样