在豆瓣javascript小组的群里,基于java框架的未来开发者,史努比同学每天催魂般的叫嚣……我终于翻开了qunit的文档,下载了代码,开始了使用javascript测试框架道路…
好了,言归正传…。
使用和下载方法google上的中文或者E文教程都说烂了,在这里随便提一下:下载http://docs.jquery.com/QUnit中的2个文件qunitCSS和JS,然后自己制作一个HTML测试页面,放在服务器或者随便哪…,对了,开头别忘记要加载最新的jquery库代码…然后就可以开始了。
嗯,初始化之后的页面,给个截图吧,很刺激的爆红和爆绿~

然后对应上面的代码,其实很简单了。
module(“A”); //创建一个测试集
function nowpage(page){ //测试函数
var nowpagehtml=[];
for(i=1;i<=page;i++){
nowpagehtml.push(i);
}
nowpagehtml=nowpagehtml.join(” “);
return nowpagehtml; //返回一个数字字符串
}
test(‘测试函数’, function(){ //给测试函数起个名字test方法为创建一个测试函数
equals(nowpage(0),null, ‘函数返回字符串1′); //equals就是判断相等的,第一个是函数,第2个期望返回值,第3个是解释,然后对应界面,就可以看出怎么用了,另外一个方法是same,可以判断数据和对象的。详情看文档吧。
equals(nowpage(3),”1 2 3″, ‘函数返回字符串1 2 3′);
equals(nowpage(“3″),”1 2 3″, ‘函数返回字符串1 2 3′);
});
再然后就是一个OK函数了。返回是否的,目前这个例子不太适合…但是应该可以理解的,例子:
ok(simpleTest("2"), '"2"是一个数字');
最后就是ajax异步的测试,这个的理解需要2个函数,stop();和start();例子:

function ajaxdemo(Callback) {
$.ajax({
url: ‘search.php?abc=xxx’,
success: Callback
});
}
test(‘asynchronous test’, function() {
stop(); // 暂停测试告诉qunit我要异步调用了。
ajaxdemo(function() {
// 异步调用判断 看是否返回你预期的值等…
})
setTimeout(function() {
start();
}, 2000); //自己预期异步成功预期时间,到达时间调用start();继续qunit,返回测试结果。
})
这个理解还要感谢史努比同学…,他解释的比较形象,大概这就是javascript中的单线程异步模型吧…
最后还发现了2个源代码中给出的提示,最新的qunit里的382行:
// Backwards compatibility, deprecated
QUnit.equals = QUnit.equal;
QUnit.same = QUnit.deepEqual;
嗯,上面可以替代使用并鼓励的2个方法,下面是文档中列出的所有方法和说明…

OVER,以后多多测试吧,我只测了我的一个以前的函数,但是爆绿的感觉还不错呢。
Read More
Comments