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

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

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

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

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

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

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

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

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

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