亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Javascript單元測試框架QUnitjs詳細介紹

2019-11-20 20:43:08
字體:
來源:轉載
供稿:網友

一、什么是 QUnit

QUnit(http://qunitjs.com/) 是一個非常強大的javascript單元測試框架,可以幫你調試代碼。它是由 jQuery 團隊的成員寫的,而且是 jQuery 的官方測試套裝。但QUnit一般是足以測試任何常規 javascript 代碼,它甚至可能通過一些 javascript 引擎比如 Rhino 或 V8 來測試服務器端 JavaScript。
如果你不熟悉“單元測試”的概念,請不要擔心。這不是很難理解的:

復制代碼 代碼如下:

在計算機編程中,單元測試(又稱為模塊測試)是針對程序模塊(軟件設計的最小單位)來進行正確性檢驗的測試工作。程序單元是應用的最小可測試部件。在過程化編程中,一個單元就是單個程序、函數、過程等;對于面向對象編程,最小單元就是方法,包括基類(超類)、抽象類、或者派生類(子類)中的方法。 ― 引自維基百科。


簡單地說,你為你的代碼的每個功能寫測試,如果所有這些測試都通過了,那么你可以肯定的是,代碼沒有缺陷(通常,還是由你的測試有多徹底而定)。


二、為什么你要測試你的代碼

如果你以前從未寫過任何單元測試,你可能直接將你的代碼上到網站上,點擊一會看看是否有什么問題出現,并且嘗試去解決你所發現的問題,采用這種方法會有很多的問題。
首先,這是很膩煩的。點擊事實上并不是一件輕松的工作,因為你不得不確保每樣東西都被點到而且很有可能你錯過了一個或兩個。

其次,你為測試做的每件事情是不能復用的,這意味著它很難回歸。什么是回歸?想像一下你寫了一些代碼并測試,修復了所有你發現的缺陷,然后發布。此時,一個 用戶發送了一些關于新缺陷的反饋,并且需要一些新功能。你返回到代碼中,修復這些新缺陷并增加新功能。接下來可能會發生的就是一些舊的缺陷又重現了,這就 叫“回歸”???,現在你還得再去點擊一遍,而且有可能你還找不到這些舊的擔擔缺陷;即使你這么做,這還需要一段時間才能弄清楚你的問題是由回歸引起的。使用單元測試,你寫測試去發現缺陷,一旦代碼被修改,您通過測試再篩選一次。如果回歸出現,一些測試一定會失敗,你可以很容易地認出他們,知道哪部分代碼包含了錯誤。既然你知道你剛才修改了什么,就可以很容易地解決。

另外一個單元測試的優點,尤其是對于web開發來說: 它使跨瀏覽器兼容性測試很容易。僅僅在不同瀏覽器中運行你的測試案例就行,如果一個瀏覽器出現問題,你修復它并重新運行這些測試案例,確保不會在別的瀏覽器引起回歸,一旦全部通過測試,你可以肯定的說,所有的目標瀏覽器都支持。

我想提及一個 John Resig 的項目:TestSwarm(http://testswarm.com/)。 它將 Javascript 單元測試帶到了一個新的層次,通過使其分布,這是一個網站,其中包含很多測試案例,任何人都可以去那運行一些測試案例,然后返回結果會返回到服務器。通過這種方式,代碼會非常迅速的在不同的瀏覽器進行測試,甚至不同的平臺運行。

三、如何用 QUnit 寫單元測試

那么,你如何正確地用QUnit寫單元測試呢?首先,您需要設置一個測試環境:

復制代碼 代碼如下:

<!DOCTYPE html>
<html>
<head>
    <title>QUnit Test Suite</title>
    <link rel="stylesheet" type="text/css" media="screen">
    <script type="text/javascript" src="http://github.com/jquery/qunit/raw/master/qunit/qunit.js"></script>
    <!-- Your project file goes here -->
    <script type="text/javascript" src="myProject.js"></script>
    <!-- Your tests file goes here -->
    <script type="text/javascript" src="myTests.js"></script>
</head>
<body>
    <h1 id="qunit-header">QUnit Test Suite</h1>
    <h2 id="qunit-banner"></h2>
    <div id="qunit-testrunner-toolbar"></div>
    <h2 id="qunit-userAgent"></h2>
    <ol id="qunit-tests"></ol>
</body>
</html>

正如你所見,在這里使用了一個被托管的QUnit框架版本。
將要被測試的代碼已被添加到 myProject.js 中,而且你的測試應該插入到 myTest.js 。要運行這些測試,只需在一個瀏覽器中打開這個 HTML 文件。現在到了寫些測試的時間了。
單元測試的基石是斷言:

斷言是一個命題,預測你的代碼的返回結果。如果預測是假的,斷言失敗,你就知道出了問題。


運行斷言,你應該把它們放入測試案例:

復制代碼 代碼如下:

// Let's test this function
function isEven(val) {
    return val % 2 === 0;
}

test('isEven()', function() {
    ok(isEven(0), 'Zero is an even number');
    ok(isEven(2), 'So is two');
    ok(isEven(-4), 'So is negative four');
    ok(!isEven(1), 'One is not an even number');
    ok(!isEven(-7), 'Neither is negative seven');
})


這里我們定義一個函數:isEven,用來檢測一個數字是否為奇數,并且我們希望測試這個函數來確認它不會返回錯誤答案。
我們首先調用 test(),它構建了一個測試案例;第一個參數是一個將被顯示在結果中的字符串,第二個參數是包括我們斷主的一個回調函數。
我們寫了5個斷言,所有的都是布爾型的。一個布爾型的斷言,期望它的第一個參數為true。第二個參數依然是要顯示在結果中的消息。
這里是你想要得到的,只要你運行測試:



四、深入學習參考

以上只簡單的介紹了 qunit.js ,其斷言方法還有很多,具體可參考 api 文檔:
http://api.qunitjs.com/
單元測試是一個在你發布你的代碼前測試你的代碼的非常好的方法。如果你以前沒有寫過任何的單元測試,現在是時候開始了!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲男人天堂2023| 亚洲男女自偷自拍图片另类| 亚洲人成伊人成综合网久久久| 疯狂做受xxxx欧美肥白少妇| 911国产网站尤物在线观看| 亚洲国产天堂久久国产91| 久久影视电视剧免费网站清宫辞电视| 性夜试看影院91社区| 久99九色视频在线观看| 久久久黄色av| 国产精品久久久亚洲| 国产精品青青在线观看爽香蕉| 国产精品吊钟奶在线| 久久国产精品影视| 国产午夜精品一区理论片飘花| 亚洲色图25p| 欧美激情一区二区三区高清视频| 岛国av午夜精品| 欧美丰满少妇xxxx| 久热精品视频在线免费观看| 国产精品久久久久久久久久久久| 亚洲欧美日韩中文在线制服| 韩国三级日本三级少妇99| 欧美激情免费观看| 国产综合香蕉五月婷在线| 日韩精品在线观看一区二区| 亚洲精品电影久久久| 亚洲成年人在线播放| 欧美高跟鞋交xxxxxhd| 欧美日韩一二三四五区| 91精品国产综合久久久久久蜜臀| 亚洲精品www久久久久久广东| 久久久久久12| 欧美日韩aaaa| 麻豆乱码国产一区二区三区| 精品成人国产在线观看男人呻吟| 国产一区二区三区免费视频| 国内精品模特av私拍在线观看| 88xx成人精品| 精品爽片免费看久久| 久久天天躁狠狠躁夜夜躁2014| 精品久久久久人成| 亚洲色图欧美制服丝袜另类第一页| 97精品久久久中文字幕免费| 精品久久久一区| 国产精品户外野外| 成人深夜直播免费观看| 亚洲free性xxxx护士白浆| 国产视频精品免费播放| 欧美在线视频免费播放| 国产精品久久久久久久久免费看| 日韩**中文字幕毛片| 亚洲无限乱码一二三四麻| 亚洲免费影视第一页| 色妞欧美日韩在线| 91国偷自产一区二区三区的观看方式| 色综合五月天导航| 日韩精品中文字幕久久臀| 欧美裸体xxxx极品少妇软件| 国产精品久久久久久久久久久新郎| 亚洲欧美日韩一区在线| 日韩电影第一页| 亚洲成人久久久久| 国产精品无码专区在线观看| 日韩亚洲一区二区| 国产欧美久久久久久| 亚洲三级av在线| 亚洲区在线播放| 亚洲精品乱码久久久久久按摩观| 一区二区三欧美| 九九热精品视频| 国产成人精品午夜| 国产精品高精视频免费| 自拍视频国产精品| 欧美大尺度电影在线观看| 日韩高清电影好看的电视剧电影| 一道本无吗dⅴd在线播放一区| 这里只有视频精品| 96国产粉嫩美女| 国产精品永久免费在线| 亚洲视频在线观看网站| 亚洲精品在线不卡| 在线播放日韩欧美| 国产精品27p| 久久久成人的性感天堂| 久久视频在线免费观看| 中文字幕在线国产精品| 欧美日韩国产成人高清视频| 日韩av在线精品| 在线丨暗呦小u女国产精品| 夜夜嗨av色综合久久久综合网| 欧美性猛交xxxx免费看| 555www成人网| 中文欧美日本在线资源| 91精品啪在线观看麻豆免费| 欧美视频免费在线观看| 亚洲国产精品va在线看黑人动漫| 久久影院资源网| 色综合久久悠悠| xxxxxxxxx欧美| 精品国产91久久久久久| 97精品伊人久久久大香线蕉| 国产亚洲精品久久| 日韩资源在线观看| 欧美国产在线视频| 欧美性jizz18性欧美| 91中文在线视频| 亚洲国产三级网| 久久久久久久久久久国产| 色偷偷888欧美精品久久久| 美女视频黄免费的亚洲男人天堂| 日本一区二区在线免费播放| 欧美一区二区视频97| 成人av.网址在线网站| 亚洲xxxx视频| 久久的精品视频| 68精品久久久久久欧美| 欧美天天综合色影久久精品| 性色av一区二区三区红粉影视| 日本亚洲欧洲色α| 亚洲老头老太hd| 欧美一区三区三区高中清蜜桃| 国产精国产精品| 中文字幕日韩欧美精品在线观看| 精品呦交小u女在线| 中文字幕日韩在线观看| 亚洲精品电影网| 久久综合五月天| 日韩高清av在线| 欧美在线性视频| 亚洲午夜未删减在线观看| 91在线色戒在线| 精品亚洲一区二区| 精品自拍视频在线观看| 欧美肥老妇视频| 亚洲女人被黑人巨大进入| 亚洲欧美中文日韩在线| 在线播放国产一区二区三区| 国产在线播放91| 青草青草久热精品视频在线网站| 欧美一区二区三区……| 国产中文日韩欧美| 亚洲国产日韩一区| 午夜精品福利电影| 中文字幕无线精品亚洲乱码一区| 国产成人avxxxxx在线看| 国产福利视频一区二区| 亚洲影院色无极综合| 欧美激情视频网址| 97国产成人精品视频| 91成人免费观看网站| 久久久久久久久久国产精品| 美女少妇精品视频| 国内精品视频一区| 最新中文字幕亚洲| 国产一区二区三区免费视频| 中文日韩电影网站| 久久久久久尹人网香蕉| 国产91精品久久久久久| 国产精品久久久久久久久久三级| 国产精品久久久久久久久久新婚| 91po在线观看91精品国产性色| 色综合天天狠天天透天天伊人| 国产日韩视频在线观看|