使用QUnit进行Javascript单元测试
2012-10-30 18:46:53 来源:WEB开发网相信大家都对JUnit并不陌生,虽然在国内使用JUnit真正进行单元测试的人应该并不是十分普及(估计大家都是自己简单进行测试,很少能使用JUnit进行回归测试等),但是这依然不能改变单元测试的重要性。而随着Javascript的崛起,大量的功能被放在了前端而非中端,这就需要我们对Javascript的相关代码进行单元测试。Qunit是JS代码测试工具中比较流行的,以前是Jquery团队内部测试Jquery库的工具,目前已经与jquery分割出来,可以独立使用。下面,我就做个例子简单说明如何使用Qunit进行JS代码单元测试。
一般情况下,我们会将js代码嵌入jsp/html等文件中,而测试代码最好单独创建文件。我们以test.js包含测试代码,demo.js包含功能性js代码,example.html为运行qunit的页面文件。代码如下:
example.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>QUnit 测试</title>
<link rel="stylesheet" href="css/qunit.css" type="text/css"></link>
<script type="text/javascript" src="qunit.js"></script>
<script type="text/javascript" src="demo.js"></script>
<script type="text/javascript" src="test.js"></script>
</head>
<body>
<h1 id="qunit-header">QUnit 测试</h1>
<h2 id="qunit-banner"></h2>
<div id="qunit-testrunner-toolbar"></div>
<h2 id="qunit-userAgent"></h2>
<ol id="qunit-tests"></ol>
<div id="qunit-fixture">test markup</div>
</body>
</html>
其中大部分代码都不需要修改,只需要根据实际情况在<head></head>中引入qunit.js和test.js以及demo.js文件即可。qunit会自动识别并运行测试代码。
demo.js
//检查数字是否为非负整数
function checkNum(n){
var integerReg = /^\d+$/;
if(n.match(integerReg)
return true;
else
return false;
}
test.js
module ("非负整数检查");
test("check number", function(){
var result1 = checkNum(20);
equal(result1, true, "不是非负整数");
var result2 = checkNum(-10);
equal(result2, false, "是非负整数");
var result3 = checkNum(-0);
equal(result3, true, "不是非负整数");
var result4 = checkNum(0);
equal(result4, true, "不是非负整数");
var result5 = checkNum(12.3);
equal(result5, false, "是非负整数");
});
在浏览器中打开example.html页面显示效果如图,代码都非常简单,我们可以基于此对js的函数做到“心中有数”,代码修改后做回国测试非常方便快捷。
更多精彩
赞助商链接