JavaScript 组件之旅(四):测试 JavaScript 组件(2)
作者:太伯 来源:alipay UED 发布时间:2009-10-13 20:32:00
接下来,我们编写两个 helper 方法用来输出和测试:
function log(str) {
node.value += str + '\n';
}
function assert(expression) {
var flag;
eval('flag = ' + expression);
return typeof(flag) === 'boolean' && flag;
}
log
用来向文本框追加信息,assert
用来测试传入表达式的值。测试方法如下(这里使用了 jQuery):
var sq = SmartQueue, task, total = 0, passed = 0, failed = 0;
$('#J_test_cases').children().each(function(index) {
eval($('pre', this).text());
task.register();
$('li', this).each(function() {
var item = $(this);
var flag = assert(item.text());
if(flag) passed ++; else failed ++;
item.prepend((flag ? '<font color="green">[PASS]</font>' : '<font color="red">[FAIL]</font>') + ' ');
total++;
}).wrap('<pre></pre>');
}).end().before('<p>Total: ' + total + ', passed: '+ passed +', failed: ' + failed + '</p>');
sq.fire();
这个结构还可改进一下,比如输出测试说明而不是具体的代码,也可以增加后置操作,这里就不再演示了。你还可以查看完整的测试页面,含有 23 个测试用例和完整的测试实现。
~~~~~~~~~~~~~ 八卦分割线 ~~~~~~~~~~~~~
好吧,我们已经体会到了思考和行动的乐趣,走到了系列文章的尾声,但这只是开始。我们经历了一个很小的实用组件的实现全过程,领略到了 JavaScript 世界的精彩,让我们继续前行~


猜你喜欢
- 最近和Sobin在做一个精品课程的项目,因为用到一个固定的id作为表间关联,所以在前一个表插入数据后要把插入数据生成的自增id传递给下一个表
- 此篇博客学习的api如标题,分别是:current_url获取当前页面的url;page_source 获取当前页面的源码;ti
- 1.排序ORDER BY 子句来设定哪个字段哪种方式来进行排序,再返回搜索结果。desc:降序select * from blog orde
- 本文实例讲述了python数据结构之图的实现方法。分享给大家供大家参考。具体如下:下面简要的介绍下:比如有这么一张图:  
- 简介使用百度深度学习框架paddlepaddle对人像图片进行自动化抠图安装根据PaddlePaddle官网命令安装如pip install
- 本文实例讲述了Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息。分享给大家供大家参考,具体如下:说明:此代码用于接
- 我们编写程序最终目的还是来解决实际问题,所以必然会遇到输入输出的交互问题,python中提供了input函数用来获取用户的输入,我们可以用以
- 按照某一列排序d = {'A': [3, 6, 6, 7, 9], 'B': [2, 5, 8, 0, 0]
- 普通方法:爬取梨视频import reimport timeimport randomimport requestsfrom lxml im
- 和其他语言不一样,传递参数的时候,python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。实际
- 如下所示:找了好久,今天无意中敲出来了:ctrl+l(小写)全局查找某个变量:ctrl+h我用的Eclipse快捷键来源:https://b
- 什么是goroutine?Goroutine是建立在线程之上的轻量级的抽象。它允许我们以非常低的代价在同一个地址空间中并行地执行多个函数或者
- 01、文件操作文件是操作系统提供给用户/应用程序操作硬盘的一个虚拟的概念/接口用户/应用程序可以通过文件将数据永久保存在硬盘中用户/应用程序
- 目录初期操作分析参数分析salt、signPython代码运行效果初期操作打开有道翻译界面—F12—Network—在翻译框中输入'
- 在SQL Server数据库中,有min server memory与max server memory两个内存选项。数据库管理员合理设置这
- Math概述Math 对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值,取整、最大值等)可以使用 Math 中
- 问题描述:两个 go 程轮流打印一个切片。Golang 实现:使用两个 channel,只用来判断package mainimport (
- Python关键字 global与nonlocalglobaldef test(): #1函数内如果没定义x,则x默认为全局变量
- 使用el-upload 上传视频总是报404错误,具体也不知道什么原因(如有知道的请评论告知,谢谢),去网上查了很多,代码写法确定
- 本文实例讲述了thinkPHP5.0框架简单配置作用域的方法。分享给大家供大家参考,具体如下:配置参数支持作用域的概念,默认情况下,所有参数