使用QUnit对JS进行单元测试



一、QUnit特点


1、使用起来非常方便,有漂亮的外观和完整的测试功能(包括异步测试);

2、非常简单,容易上手,目前公开的API只有19个;

3、不需要依赖其它任何软件包或框架,只要能运行JS的地方就可以,QUnit本身只有一个JS文件和CSS文件,当然如果需要可以和jQuery等其它框架集成;

4、不仅支持在浏览器中测试,还支持在Rhino和node.js等后端测试。


 

二、QUnit中API


QUnit所有的API可以分为三类:Setup,Assertions,Asynchronous Testing

 

1、Setup

 

(1)、test( name, [expected], testFun )  

代表QUnit中的一个测试


参数说明

name:要测试的名称,比如“加法函数”或“add”等

expected:可选参数,用来表示该测试函数的断言的数量,是个正整数

testFun:一个函数,所有的测试代码都应该包括在该函数里,通常这是一个匿名函数。

例:

test(“add function”, 1, function() {

    equal(add(1, 2), 3);

});

 

(2)、asyncTest( name, [expected], testFun )  

代表QUnit中的一个异步测试,参数同test

 

(3)、expect( amount )  

用在测试函数中,用于声明测试断言的数量,这个函数和test中的expected参数的作用是一样的。主要作用就是检查你声明的个数和你写的断言的实际个数是否一致。

 

(4)、module( name, [lifecycle] )  

主要用于测试函数的分组,一个module函数为一个分组,比如module(“validate”)表示后面的测试用例都是validate相关的代码,或者module(“common.js”),表明后面的测试用例都是common.js里面的代码。一个测试文件可以写多个module。


参数说明

name:分组或者模块的名称

lifecycle:可选参数,它是一个对象,可以设置setup和teardown回调函数

例:

module(“common.js”, 

    {

        setup:function(){},

        teardown: function() {} 

    }

);

setup:在module开始之前执行,可以为该module下面的测试代码做一些准备工作

teardown:将会在该module的所有测试代码执行后执行,比如做一些清理还原工作等。

 

(5)、QUnit.init( )  

用于初始化QUnit测试框架,通常这个函数是不需要我们手工调用的。

 

(6)、QUnit.reset( )  

重设函数,通常是在每个test函数执行后由QUnit自己调用来重设整个QUnit测试环境,当然必要时我们自己也可以调用它来复原,不常用。

 


2、Assertions

 

(1)、ok( state, [message] )  断言

state值为true时表示通过,否则失败。

 

(2)、equal( actual, expected, [message] )  

比较参数actual和expected是否相等,相当于 ==

 

(3)、notEqual( actual, expected, [message] )  

比较两个参数是否不相等,相当于 !=

 

(4)、deepEqual( actual, expected, [message] )  

主要用于数组和对象等类型的值是否相等,会递归遍历它们所包含的值是否相等。

 

(5)、notDeepEqual( actual, expected, [message] )  

主要用于数组和对象等类型的值是否不相等,会递归遍历它们所包含的值是否不相等。

 

(6)、strictEqual( actual, expected, [message] )  

比较两个参数是否严格相等,相当于 ===

 

(7)、notStrictEqual( actual, expected, [message] )  

比较两个参数是否不严格相等,相当于 !==

 

(8)、throws( block, expected, [message] )  

测试block函数是否抛出一个异常,抛出则通过,不抛则失败。


参数说明

block:我们要测试的函数

expected:可选参数,是一个类型,用来验证第一个函数抛出的异常是否是我们预期的类型。



3、Asynchronous Testing


 


(1)、stop( [increment] )  


停止测试的运行,用于异步测试。在异步测试时一般先把QUnit的test runner停下来。


increment:增加停止的时间。


 


(2)、start( [decrement] )  


当异步调用成功后就应该把停止的test runner启动起来让它接着往前跑


decrement:用来减少停止的时间。




文章转载自: javascript的单元测试   http://www.studyofnet.com/news/1035.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值