日期:2014-05-16 浏览次数:20295 次
相信大家都对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的函数做到“心中有数”,代码修改后做回国测试非常方便快捷。