QUnit简单教程2014-02-20什么是QUnit?QUnit是一个非常简单而且强大的单元测试框架,简单到稍微懂点javascript的人,5分钟不到就会了,以下就是这个框架的用法:首先,既然是一个框架,肯定有框架的共有特征(框架的css->qunit.css,框架的js函数库->qunit.js,框架的HTML 显示页面->framework.html,我们按照规范放置在应该放置的地方,如下图所示:)

既然是javascript测试框架,那么肯定就有两部分组成,一部分是被测试的javascript函数,另一部分是测试语句的javascript函数,我们分别建2个文件夹(needTestJS和tcJS来放置)。Part 1: 被测试的javascript函数:我们这里写了两个函数,按照QUnit的建议,我们为其定义一个测试模块(模块化嘛)一个用于测试参数是否为数字,一个用于测试传入的数是否为偶数:
//定义测试模块 module ("测试示例"); //定义一个简单的函数,判断参数是不是数字 functionisNumber (para){ if (typeof para=="number") { return true; }else{ return false; } }//这个函数用于判断传入的数是不是偶数 function isEven(val) { return val % 2 === 0; }Part 2:测试用例:测试用例也是javascript函数,我们必须用测试断言来构造这些测试用例,有很多种测试断言,最常用的几种有:ok() ,equals(),same(),具体他们用在什么场合见我的代码注释部分:
//开始单元测试//test的第一个参数是展现在页面上的这个测试集合的名称,可以指定任何有意义的名字 test("isNumber()",function(){ //列举各种可能的情况,保证每种条件应该符合的逻辑//ok 是QUnit中最常见的用于判断的函数,不过只能判断true和false //正确,则绿色的条子,错误就会爆红 ok (isNumber(2), "2是一个数字"); ok(!isNumber("2"),"字符串2不是一个数字"); ok(isNumber(NaN),"NaN是一个数字");} );test("isEven()" ,function(){ //equals(actual,expected,[message]) 用于相当的判断函数 equals(true ,isEven(2),"2是偶数"); equals(false,isEven(3),"3不是偶数"); } ); test("恒等断言" ,function(){//same()是恒等断言,可以用来判定2个对象是否相等(可以不相同) same( {}, {}, "passes, objects have the same content"); same( {a: 1}, {a: 50} , "passes"); same( [], [], "passes, arrays have the same content"); same( [1], [1], "passes"); } );