QUnit5分鐘教程
QUnit是一個非常簡單而且強大的單元測試框架,簡單到稍微懂點javascript的人,5分鐘不到就會了,以下就是這個框架的用法:
首先,既然是一個框架,肯定有框架的共有特徵(框架的css->qunit.css,框架的js函式庫->qunit.js,框架的HTML 顯示頁面->framework.html,我們按照規範放置在應該放置的地方,如下圖所示:)
既然是javascript測試框架,那麼肯定就有兩部分組成,一部分是被測試的javascript函式,另一部分是測試語句的javascript函式,我們分別建2個資料夾(needTestJS和tcJS來放置)。
Part 1: 被測試的javascript函式:
我們這裡寫了兩個函式,按照QUnit的建議,我們為其定義一個測試模組(模組化嘛)一個用於測試引數是否為數字,一個用於測試傳入的數是否為偶數:
- //定義測試模組
- module (“測試示例”);
- //定義一個簡單的函式,判斷引數是不是數字
- function isNumber (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`);
- }
- );
Part 3: 顯示結果:
測試,要呼叫這些測試方法和顯示結果(無數java developer的為綠條而歡呼雀躍,為紅條而憂傷,QUnit中沿用了JUnit中的顏色設定風格),我們必須要有個底座,幸運的是,QUnit框架已經為我們提供了這個底座(HTML頁面),我們只需要吧被測試的js和測試用例js新增進去,如下所示:
- <!DOCTYPE html>
- <html>
- <head>
- <meta content=“text/html; charset=utf-8” http-equiv=“Content-Type”>
- <title>QUnit Test Suite</title>
- <link rel=“stylesheet” href=“../css/qunit.css” type=“text/css” media=“screen”>
- <script type=“text/javascript” src=“../js/qunit.js”></script>
- <!– 這裡放置被測試的函式所在js檔案 –>
- <script type=“text/javascript” src=“../project/needTestedJS/module.js”></script>
- <!– 這裡放測試用例js檔案 –>
- <script type=“text/javascript” src=“../project/tcJS/moduleTest.js”></script>
- </head>
- <body>
- <h1 id=“qunit-header”>QUnit測試套件</h1>
- <h2 id=“qunit-banner”></h2>
- <div id=“qunit-testrunner-toolbar”></div>
- <h2 id=“qunit-userAgent”></h2>
- <ol id=“qunit-tests”></ol>
- </body>
- </html>
然後我們就可以看到測試結果了,正確的則顯示綠條和註解,錯誤的則顯示紅條以及錯誤資訊:
比如我們這裡故意放了一個錯誤,我們在測“恆等斷言”時候,我們故意給了2個不等的json 物件,一個是{a:1},一個是{a,50},所以,這裡就“爆紅”了。
相關文章
- Git五分鐘教程Git
- Lucene五分鐘教程
- 30分鐘泛型教程泛型
- GDB十分鐘教程
- 5分鐘安裝docker教程Docker
- 30 分鐘 Qunit 入門教程
- Maven 5 分鐘入門教程Maven
- 泊松分佈和指數分佈:10分鐘教程
- 5分鐘上手cml視訊教程
- 30 分鐘快速入門 Docker 教程Docker
- 30 分鐘 Java Lambda 入門教程Java
- JavaScript物件導向15分鐘教程JavaScript物件
- 15分鐘包會sass終極教程
- [譯] 30 分鐘 Python 爬蟲教程Python爬蟲
- Bash指令碼15分鐘進階教程指令碼
- C語言指標5分鐘教程C語言指標
- C 語言指標 5 分鐘教程指標
- 收藏!836分鐘的谷歌機器學習教程,帶你10分鐘看完!—— Jinkey 原創谷歌機器學習
- 正規表示式30分鐘入門教程
- 一分鐘教程-超橢圓快速繪製
- Go 語言基礎教程:10分鐘入門Go
- oracle 前10分鐘 後10分鐘Oracle
- 最簡明扼要的 Systemd 教程,只需十分鐘
- 十分鐘上手-搭建vue開發環境(新手教程)Vue開發環境
- LaTeX新人教程,30分鐘從完全陌生到基本入門
- 一分鐘sed入門(一分鐘系列)
- mac新手教程:十分鐘輕鬆熟悉操作Mac系統Mac
- 超詳細的Servlet教程,10分鐘帶你認識servletServlet
- PyTorch 60 分鐘入門教程:資料並行處理PyTorch並行
- [保姆教程] [Postgres] 3分鐘在Ubuntu環境下安裝PostgresqlUbuntuSQL
- [保姆教程] [Postgres] 1分鐘深入瞭解Postgres主鍵自增
- 為Java程式設計師準備的10分鐘Perl教程Java程式設計師
- 軟體測試教程三分鐘瞭解http和httpsHTTP
- 好程式設計師Java教程教你5分鐘瞭解快速排序程式設計師Java排序
- 【入門教程】5分鐘教你快速學會整合Java springboot ~JavaSpring Boot
- 30分鐘SQL指南SQL
- 20分鐘上手 webAssemblyWeb
- 10 分鐘理解 ReduxRedux