今天推荐一款来自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. testng入门_单元测试
  2. javascript 中的getter,setter
  3. linux系统生成的新文件是什么编码的,Linux系统的默认编码怎样设置?
  4. Spring Security:初体验
  5. vscode 插件推荐 - 献给所有前端工程师(2018.4.29更新)
  6. 我们无法更新系统保留的分区_系统更新是我们手机的基本功能之一 安卓智能更新有哪些用途...
  7. windows 下opencv for python 的安装
  8. P2424 约数和 真丶除法分块
  9. React Native升级方法——升级到最新版本0.59
  10. DECLARE_DYNAMIC IMPLEMENT_DYNAMIC
  11. python 网络设备巡检_python写的一个服务器自动巡检工具
  12. 地产行业主数据建设项目思考
  13. shell实现ftp命令示例
  14. android 7.0 调试日志,Android软件调试记录
  15. 电机学测试题+课后习题+思考题
  16. cnpm和npm使用,遇到的问题及解决方法
  17. VSCode 单文件编译 与 多文件编译(windows)
  18. 挑出区域内每一行最小值,并标记颜色
  19. 第一场嵌入式笔试——CVTE嵌入式应用工程师
  20. Windows 11系统映像恢复到新硬盘的3种方式

热门文章

  1. win32 API 遍历一个目录下的文件
  2. VC++网络资源集合
  3. Notepad++ 搜索功能学习总结
  4. 组件通信 $ref
  5. Node Buffer 利用 slice + indexOf 生成 split 方法
  6. DataSnap 2009 系列之二 (方法篇)
  7. 报表测试用例设计方法总结
  8. 函数加上简单用户名密码认证
  9. RabbitMQ 记录
  10. Name与x:Name的关系--转载