03月 02
学习单元测试工具
JavaScript, php 评论关闭
一、PHP单元测试工具
二、JavaScript单元测试工具 — QUnit
QUnit是jQuery团队开发的JavaScript单元测试工具,使用方便,界面美观。
//安装测试 test( name, expected, test ) //添加一个测试运行 asyncTest( name, expected, test ) //添加异步测试运行 expect( amount ) //预计在一个测试中有几个断言 module( name, [lifecycle] ) //函数指定测试模块和周期。 init( ) //初始化测试 //断言函数 ok( state, [message] ) //判断函数,只能判断true和false。 equals( actual, expected, [message] ) //相等判断 same( actual, expected, [message] ) //相同判断(包含数组、对象等) //异步测试 start( ) //TestRunner停止后再启动测试 stop( timeout ) //停止TestRunner的等待异步测试运行
建立一个测试页面,引入 qunit.js 和 qunit.css 这两个必需的文件
QUnit example
测试用例
//定义测试模块
module( "测试示例" );
//定义一个简单的函数,判断参数是不是数字
function simpleTest(para) {
if(typeof para == "number") {
return true;
}
else{
return false;
}
}
//开始单元测试
test('simpleTest()', function() {
//列举各种可能的情况,注意使用 ! 保证表达式符合应该的逻辑
ok(simpleTest(2), '2是一个数字');
ok(!simpleTest("2"), '"2"不是一个数字');
});
//定义一个简单的函数,返回数字和2的乘积
function simpleTest1(para) {
return para * 2;
}
//开始单元测试
test('simpleTest1()', function() {
//列举各种可能的情况
equals(simpleTest1(2), 4, '2 * 2 等于 4');
equals(simpleTest(2), 3, '2 * 2 等于 3');
});
//定义一个简单的函数,返回一个数组
function simpleTest2() {
return [1, 2];
}
//开始单元测试
test('simpleTest2()', function() {
//列举各种可能的情况
equals(simpleTest2(), [1, 2], '函数返回数组[1, 2]');
equals(simpleTest2(), [1, 1], '函数返回数组[1, 1]');
});
//异步测试
module( "异步测试示例" );
//setTimeout
test('asynchronous test', function() {
// 暂停测试
stop();
setTimeout(function() {
ok(true, '完成运行');
//待测试完成后,恢复
start();
}, 100)
})
//另一种形式
asyncTest('asynchronous test', function() {
setTimeout(function() {
ok(true);
//待测试完成后,恢复
start();
}, 100)
})
//Ajax测试
function ajax(successCallback) {
$.ajax({
url: 'server.php',
success: successCallback
});
}
test('asynchronous test', function() {
// 暂停测试
stop();
ajax(function() {
// 异步调用判断
})
setTimeout(function() {
//异步测试完成后,恢复
start();
}, 2000);
});