您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 >
javaScript測(cè)試框架jasmine介紹
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/4/15 15:42:59 ] 推薦標(biāo)簽:

  jasmine.any引用構(gòu)造函數(shù)或者類名作為期望值,和真是的構(gòu)造函數(shù)匹配時(shí)返回true

  jasmine的Mock Clock是一款有效的測(cè)試組件,有能力使用setTimeout或者setInterval回調(diào)函數(shù)。它使timer回調(diào)函數(shù)同步,使它們更容易測(cè)試

  通過(guò)在spec或者suite里調(diào)用jasmine.Clock.useMock來(lái)安裝Mock clock。

  通過(guò)jasmine.Clock.tick方法來(lái)標(biāo)記clock以觸發(fā)注冊(cè)的回調(diào)函數(shù),這個(gè)方法傳一個(gè)milliseconds.

  上面這段話來(lái)自對(duì)官網(wǎng)的翻譯,一些地方不好理解,筆者對(duì)下圖程序做進(jìn)一步解釋,setTimeout(function() { timerCallback(); }, 100);是一個(gè)回調(diào)函數(shù),隔100milliseconds調(diào)用timerCallback()一次。jasmine.Clock.tick(101)為等待101milliseconds,所以第一次判斷timerCallback是否為調(diào)用時(shí)為未調(diào)用,第二次則已調(diào)用。而setInterval(function() { timerCallback(); }, 100)則是每隔100milliseconds調(diào)用timerCallback()一次,這樣解釋不難理解了,第一次判斷調(diào)用前等待101milliseconds,所以調(diào)用次數(shù)為1,第二次判斷調(diào)用前又等待50milliseconds,總等待時(shí)間為151milliseconds<200milliseconds,所以仍是調(diào)用一次,再等待50milliseconds后總等待時(shí)間>200milliseconds,所以第三次判斷調(diào)用次數(shù)為2

  Jasmine支持測(cè)試異步操作,通過(guò)調(diào)用runs定義的一組blocks寫(xiě)入specs,bolcks通常結(jié)束于異步調(diào)用。waitsFor block需要一個(gè)鎖方法,一個(gè)失敗消息,和一個(gè)超時(shí)時(shí)間。鎖方法一直輪詢直到返回true或者超時(shí)。如果超時(shí),spec輸出失敗信息。一旦異步狀況出現(xiàn),另一個(gè)runs block定義終的測(cè)試行為,它期望值通常基于異步調(diào)用返回的狀態(tài)。如下圖,起初flag為false,waitsFor一直輪詢,直到500 milliseconds后觸發(fā)setTimeout的function,將flag賦為true后waitsFor在超時(shí)時(shí)間未到之前結(jié)束,waitsFor下面那個(gè)runs是測(cè)試行為,筆者看了下value的值為30+。

  Jasmine是構(gòu)建在javaScript之上的,必須包含在一個(gè)JS的環(huán)境中,如一個(gè)web頁(yè)面,這樣才能運(yùn)行。

  jasmine的測(cè)試文件用javaScript編寫(xiě),通過(guò)Rocoo被編譯進(jìn)html(Rocoo這里不做介紹,有興趣的可以自行里了解)。通過(guò)

上一頁(yè)123下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd