JavaScript单元测试常用工具:QUnit、YUI Test和JSTestDriver

&">nbsp;在本文中,您将了解一些对 JavaScript 进行单元测试的最常用的工具:QUnit、YUI Test 和 JSTestDriver。本文将会通过代码示例让您了解这些样测试用例样例。

单元测试关注的是验证一个模块或一段代码的执行效果是否和设计或预期一样。有些开发人员认为,编写测试用例浪费时间而宁愿去编写新的模块。然而,在处理大型应用程序时,单元测试实际上会节省时间;它能帮助您跟踪问题并安全地更新代码。

在过去,只对服务器端语言进行单元测试。但前端组件越来越复杂,使得编写 JavaScript 代码测试用例的需求日益提高。如果您不经常编写客户端脚本的测试,学习进度可能非常难。测试用户界面可能需要在思路上做一些调整。(有些程序开发人员一时半会还不能相信 JavaScript 是合适的编程语言。)

在本文中,您将学习如何使用 QUnit、YUI Test 和 JSTestDriver 对 JavaScript 进行单元测试。

JavaScript 单元测试

为了演示 JavaScript 测试,这一节将分析 JavaScript 中一个基本函数测试用例。清单 1 显示了要测试的函数:将 3(作为一个数)添加到传递的变量中。

清单 1. 源代码 (example1/script.js)

function addThreeToNumber(el){ return el + 3;}

清单 2 在自执行的函数中包含了测试用例。

清单 2.测试用例 (example1/test.js)

(
function testAddThreeToNumber (){ var a = 5, valueExpected= 8; if (addThreeToNumber (a) === valueExpected) { console.log("Passed!"); } else { console.log("Failed!"); }}());

将 5 传递给测试的函数之后,测试检查返回值是 8。如果测试成功,就会在一个现有浏览器的控制台中打印出 Passed!;否则就会出现 Failed!。如果要运行测试,需要按照以下步骤进行操作:

将两个脚本文件导入作为测试运行程序的 HTML 页面中,如清单 3 所示。 在浏览器中打开页面。

清单 3. HTML 页面 (example1/runner.html)

<!DOCTYPE html><html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <title>Example 1</title> <script type="text/javascript" src="js/script.js"></script> <script type="text/javascript" src="js/test.js"></script> </head> <body></body></html>

您可以不使用浏览器控制台,而是将结果打印在页面或由 alert() 方法生成的弹出窗口中。

断言是测试用例中的核心元素,用来验证某一条件是否满足。例如,在 清单 2 中,addThreeToNumber (a) === valueExpected 就是一个断言。

如果您拥有很多用例并带有很多断言,那么使用框架就会方便很多。下面的内容将会重点介绍一些最流行的 JavaScript 单元测试框架:QUnit、YUI Test 和 JSTestDriver。

时间: 2024-09-25 16:51:52

JavaScript单元测试常用工具:QUnit、YUI Test和JSTestDriver的相关文章

JQuery团队打造的javascript单元测试工具QUnit介绍_jquery

什么是单元测试? 单元测试又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作.单元测试主要是用来检验程式的内部逻辑,也称为个体测试.结构测试或逻辑驱动测试.通常由撰写程式码的程式设计师负责进行. 通常来说,程式設計師每修改一次程式就會進行最少一次單元測試,在編寫程式的過程中前後很可能要進行多次單元測試,以證實程式達到軟件規格書(en:Specification)要求的工作目標,沒有臭蟲:雖然单元测试不是什么必须的,但也不坏,這牽涉到專案管理的政策決定. -- 维基百科

如何寻找一个好的Javascript单元测试工具

让我们看看Javascript单元测试的现状和测试工具. 1.JsUnit 我们已经在使用它来作为我们的单元测试工具了. 优势: ●可以被ant构建文件调用: ●启动浏览器来运行测试用例: ●Eclipse插件支持: 缺点: ●需要启动浏览器来运行测试用例: ●不支持用js文件来写单元测试代码:它必须嵌入在html文件中: ●它已经好几年没更新了: 注意: ●有一个测试工具叫JsUnit(2): ●"ant"是一个开源构建工具:之所以叫"Ant"因为它很小,但是可以

Facebook推出JavaScript单元测试和自动化Mock工具Jest

Facebook发布了Jest,一个开源的.基于Jasmine框架的JavaScript单元测试工具. Jest源于Facebook两年前的构想,用于快速.可靠地测试Web聊天应用.它吸引了公司内部的兴趣,Facebook的一名软件工程师Jeff Morrison半年前又重拾这个项目,改善它的性能,并将其开源. 在最基础层面,Jest被设计用于快速.简单地编写地道的JavaScript测试.Jest自动模拟require()返回的CommonJS模块,并提供了包括内置的测试环境Dom API支持

如何搭建自动化、跨浏览器的 JavaScript 单元测试

本文讲的是如何搭建自动化.跨浏览器的 JavaScript 单元测试, 我们都知道在各个不同的浏览器环境里测试代码是很重要的,并且在大多数时候,我们这些 Web 开发者在这一点上还是做的不错的 -- 至少在第一次发布项目的时候是这样. 然而我们每次更改代码之后的测试工作,却做的不尽人意. 我深切地知道我本人就是这样的 -- 我早就把"学习怎样搭建自动化.跨浏览器的 JavaScript 单元测试"写在 To-do List 上了,但每当我坐下来想要真正的去解决这个问题的时候,我却不得不

Webjx收集:Web前端开发常用工具汇总

1,IE网页调试插件 IE Developer Toolsbar IE下的FireBug.HTML及CSS调试工具 http://www.windowsmarketplace.com/details.aspx?itemid=2695980 Microsoft Script Debugger Companion.JS 需要安装Microsoft Script Debugger才可 Companion.JS IE下的javascript调试工具. http://www.my-debugbar.com

使用Mootools开发JavaScript单元测试框架

Mootools是一个很好的JavaScript框架,它简洁.模块化,使用很简单,开发人员能够很快上手,编写扩展能力强.兼容性好的JavaScript代码.我这两天用了用,感觉和Prototype用法简直一模一样,不过功能似乎更加强,有很多效果,拖拽等.而且它的面向对象,继承比Prototype更直观好用,所以我开始学习这个框架. 首先看看Mootools的基本用法吧,更加详尽的解释可以在官方网站上找到. 1.? 如果我们要写一个Animal类,我们可以这样写: var Animal = new

安卓开发常用工具和第三方库汇总

本文讲的是安卓开发常用工具和第三方库汇总,我的名字叫 Ryan Cooke 我在 Pinterest 的核心体验团队工作.今天在这里我会谈论各种 Android 库:它们各自的优点,缺点和其他相关知识.目的是高效地概述尽可能多的库,这样,当你遇到一个问题的时候,你知道这是不是个已经解决的问题?什么样的方案更好?同时也能帮助你避免那些陷阱. 选择正确的库意味着你可以拥有一个已经成熟的更好的解决方案,而不是花费三个月来重新构建它.了解这些库是第一步. 我听到很多人想要实现第一个库, 我们难道不能用

javascript单元测试怎么应用在实际的系统中?

问题描述 javascript单元测试怎么应用在实际的系统中? 希望自己写的代码不那么垃圾,所以今天学了学js的单元测试,有一些疑问. 1 我怎么测试模块中封装好的函数. 我看Qunit教程中是把那个js文件加载到测试页面,所有的函数都是可以直接调用的.但是我现在用的ExtJs,我想测试一个模块中的函数,但这个函数被封装在Ext的对象当中,我怎么测试啊. 2 测试的函数依赖很多其他函数和库. 这种情况怎么办?要把所有依赖的函数js都引用进测试页面吗?假如都要引用进来,不是和写个console.l

Javascript单元测试框架QUnitjs详细介绍_javascript技巧

一.什么是 QUnit QUnit(http://qunitjs.com/) 是一个非常强大的javascript单元测试框架,可以帮你调试代码.它是由 jQuery 团队的成员写的,而且是 jQuery 的官方测试套装.但QUnit一般是足以测试任何常规 javascript 代码,它甚至可能通过一些 javascript 引擎比如 Rhino 或 V8 来测试服务器端 JavaScript.如果你不熟悉"单元测试"的概念,请不要担心.这不是很难理解的: 复制代码 代码如下: 在计算