Dojo一个功能丰富、高度模块化的JavaScript库

在项目中应用 DOH 框架进行">性能测试可以提供在不同浏览器下的性能报告,并且可以更快的定位脚本的性能瓶颈,有助于增强代码品质,对于提升用户体验有非常重要的作用。

Dojo 作为一个功能丰富、高度模块化的 JavaScript 库,注定需要大量的单元测试来确保每一个功能模块的稳定。Dojo 自带的单元测试框架 DOH(Dojo Objective Harness)为编写各类单元测试提供了坚实的基础。开发者可以利用 DOH 框架快速地编写以下单元测试:

普通 Javascript 单元测试 异步 Javascript 单元测试 Javascript 性能测试 Web UI 交互测试

其中,通过 DOH 普通 Javascript 单元测试可以确保同步 Javascript 代码逻辑的正确性。DOH 异步 Javascript 单元测试则可以保障包含 XHR 调用、setTimeout、setInterval 等异步 Javascript 代码的模块的质量。DOH 提供的性能单元测试可以让开发者方便地为自己的代码建立 Benchmark。DOH Web UI 交互测试使用机器人(robot)模拟页面交互进行自动化 UI 交互测试,使得开发者不再需要通过重复的手动操作来对页面的 UI 进行测试。

DOH 测试框架主要代码在 Dojo 的 util 包中。主要功能由以下文件提供:

runner.js:DOH 核心代码,定义了支撑 DOH 测试框架的基础 API

util/doh/_browserRunner.js:为 DOH 测试框架提供在浏览器下执行的能力。

util/doh/_nodeRunner.js:为 DOH 测试框架提供使用 nodeJS 执行的能力

util/doh/_rhinoRunner.js:为 DOH 测试框架提供使用 Rhino 执行的能力。

util/doh/robot.js:定义了为 Web UI 交互测试设计的机器人(robot)API。

util/doh/robot:该文件夹包含了实现 robot 交互功能的 Java 代码及相关资源。

util/doh/plugins:该文件夹包含了 DOH 的各类插件。用户自行开发的 DOH 插件也可以放在该文件夹下。

DOH 测试可以在浏览器或非浏览器环境下进行。在浏览器环境下,DOH 框架提供了强大的 UI 界面使得开发者可以通过颜色直观地区分 DOH 测试用例的执行情况、暂停 / 执行指定测试用例、查看测试报告等。

图 1. DOH 测试界面

查看大图。

在非浏览器环境下,如使用 nodejs,Rhino 时,往往只进行不涉及 UI 界面和 DOM、BOM 的纯 JavaScript 逻辑测试。而 DOH robot 在非浏览器环境下也是不可用的。

时间: 2024-09-16 22:04:37

Dojo一个功能丰富、高度模块化的JavaScript库的相关文章

artDialog:轻巧且高度兼容的javascript对话框组件

javascript对话框(弹出层)组件artDialog artDialog是一个轻巧且高度兼容的javascript对话框组件,可让你的网页交互拥有桌面软件般的用户体验. 演示地址:http://www.planeart.cn/downs/artDialog/ 项目主页:http://code.google.com/p/artdialog/ artDialog2采用全新的UI 功能: 支持锁定屏幕(遮罩).模拟alert和confirm.多窗口弹出.静止定位.支持Ese键关闭对话框.定时关闭

40 个轻量级 JavaScript 库 (下)

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 流行的 JavaScript 库不胜枚举,jQuery, MooTools, Prototype, Dojo, YUI.这些 JavaScript 库功能丰富,加上它们的插件,几乎能胜任任何工作,然而这是有代价的,这些库往往导致你的网页尺寸臃肿.在某些场合,如果你只想完成特定的工作,可以使用 一些功能更专一的轻量库,本文介绍了40个非常出色的

2016年10月15个最好的 JavaScript 库

g9 2016年10月15个最好的JavaScript库 g9是一个JavaScript库,用于创建自动交互图形 CurrencyFormatter.js CurrencyFormatter.js允许用户将数字格式成各种不同的货币格式.它包含155种货币格式,可以处理异常格式化的货币,如印度卢比和是完全可配置. Choreographer.js 2016年10月15个最好的JavaScript库 Choreographer.js 一个简单的库来处理复杂的动画.您还可以添加自定义的函数做non-C

19个很有用的 JavaScript库推荐_javascript技巧

然而需要实现一些特定的功能,则可以选择功能更专一的轻量库,今天这篇文章与大家分享16个很有用的 JavaScript 库. Blackbird: Open Source JavaScript Logging UtilityBlackbird 是一款非常酷的 JavaScript 调试工具,带有一个漂亮的界面显示和过滤调试信息. Treesaver.jsTreesaver 是一个用于创建杂志布局的 JavaScript 框架. BibliotypeBibliotype 是一个简单的基于 HTML.

已知漏洞隐患:数十万网站仍在使用老旧的 JavaScript 库

美国东北大学研究人员在对超过 13.3 万个网站进行分析后发现,竟然有超过 37% 的站点仍在使用至少包含一个已知公开漏洞的 JavaScript 库.研究人员早在 2014 年就意识到了这点 -- 加载过时的 JavaScript 库,存在被黑客利用的潜在安全隐患(比如 jQuery 和浏览器 AngularJS 框架).他们在一篇新报告中指出,在适当的条件下,这些漏洞会变得极其危险,比如指向一个老旧的 jQuery 跨站脚本 bug(攻击者可借此向受害站点注入恶意脚本). 研究人员们随机查看

数万网站仍在使用有已知漏洞的老旧 JavaScript 库

美国东北大学研究人员在对超过 133000 个网站分析时发现,有超过 37% 的站点仍在使用至少包含一个已知公开漏洞的 JavaScript 库.研究人员早在 2014年进行研究时就曾提醒,应当注意由于在浏览器中加载老旧版本的 JavaScript 库(如 jQuery.AngularJS 框架)而导致的潜在安全风险. 正如他们在一篇新发表的论文中所强调的,在某些条件下,这些脆弱的库会变得极其危险,比如指向一个老旧的 jQuery 跨站脚本 bug ,这将允许攻击者借机注入恶意脚本. 他们查看了

分析模块化的JavaScript开发的优势在哪里?

如今模块化的 JavaScript 的开发越来越火热,无论是模块加载器还是优秀的 JavaScript 模块,都是层出不穷.既然这么火,肯定是有存在的理由,肯定是解决了某些实际问题.很多没接触过模块化 JavaScript 开发者不禁要问,我真的需要模块化吗,模块化相比于传统的模式有什么优势? JavaScript 本身是没有模块化支持的,很多语言多有,就连CSS都有这样的加载方式. @import "fed.css"; 虽然因为性能问题不推荐CSS这样来进行加载,但这是一种模块化的思

如何创建高度模块化的 Android 应用

本文讲的是如何创建高度模块化的 Android 应用, "单一职责原则规定,每个模块或类应该对软件提供的某单一功能负责."(en.wikipedia.org/wiki/Single_responsibility_principle) Android 中构建 UI 的职责通常委派给一个类(比如 Activity.Fragment 或 View/Presenter).这通常涉及到以下任务: 填充 View(xml 布局) View 配置(运行时参数.布局管理.适配) 数据源连接(DB 或者

AgentWeb是基于Android WebView一个功能完善小型浏览器库

本文讲的是AgentWeb是基于Android WebView一个功能完善小型浏览器库,AgentWeb是一个高度封装的 Android WebView ,简单易用 , 带有进度条 . 支持文件上传 . 下载 . 简化 Javascript 通信 . 链式调用 . 加强 Web 安全的库 .让你几行代码集成一个小型浏览器在你的应用 . App 下载体验 前言 WebView 可谓是每个应用必备的一个控件了 ,但是谈起它的使用 ,让很多人都不是那么喜欢它 ,比如说每个 Web 页面都需要各种一大推