標籤:function 數組 簡單 相關 exports code rip 方法 install
一、mocha簡介
單元測試是用來對一個模組、一個函數、或者一個類來進行正確性的檢測工作 特點: 既可以測試簡單的JavaScript函數,又可以測試非同步代碼, 可以自動運行所有測試,也可以只運行特定的測試
二、編寫模組代碼
1 module.exports = { 2 add:function(a,b){ 3 return a+b; 4 }, 5 6 reduce:function(a,b){ 7 return a-b; 8 }, 9 10 ride:function(a,b){11 return a*b12 }13 }
三、編寫測試指令碼
1 1、全域安裝mocha模組 cnpm install mocha -g 2 3 2、安裝chai模組 cnpm install chai --save-dev 4 5 3、describe塊稱為"測試套件"(test suite),表示一組相關的測試。它是一個函數,第一個參數是測試套件的名稱("加法函數的測試"),第二個參數是一個實際執行的函數。 6 it塊稱為"測試案例"(test case),表示一個單獨的測試,是測試的最小單位。它也是一個函數,第一個參數是測試案例的名稱("1 加 1 應該等於 2"),第二個參數是一個實際執行的函數。 7 8 4、在接下來的測試中我們用expect進行測試 9 10 const expect = require("chai").expect;11 12 describe("對計算機模組的測試",function(){13 //對模組的測試放在it裡面14 it("測試加法",function(){15 16 //相等不相等的判斷17 //測試:斷定add方法1+2的值是318 expect(calculator.add(1,2)).to.equal(3)19 20 //測試:斷定add方法1+2的值不等於321 expect(calculator.add(1,2)).to.not.equal(10)22 23 24 //類型的判斷25 //測試:斷定add方法的傳回值得類型是number26 expect(calculator.add(1,2)).to.be.a("number");27 28 //測試:斷定這個值得類型是一個對象29 expect({name:"zhao"}).to.be.an("Object");30 31 //測試:斷定這個值得類型是一個數組32 expect([1,2,3]).to.be.an("array");33 34 //長度的判斷35 //測試:斷定str方法的傳回值的長度是336 expect(calculator.str()).to.have.lengthOf(3);37 38 39 //是否存在的判斷40 //測試:斷定obj方法的傳回值得屬性中有name這個屬性41 expect(calculator.obj()).to.have.property("name");42 43 //測試:斷定這個值裡面有3這個值44 expect([1,2,3,4]).to.include(3);45 46 //測試:斷定這個值的內容值有o這個字元47 expect("zhao").to.contain("o");48 49 50 //布爾值的判斷51 //測試:斷定這個值得布爾值的類型是true52 expect("abc").to.be.ok;53 54 //測試:斷定這個值得布爾值的類型不是true55 expect("").to.be.not.ok;56 })57 })58 59 mocha還可以監聽指令碼的變化 mocha --watch60 61 62 基本上,expect斷言的寫法都是一樣的。頭部是expect方法,尾部是斷言方法,比如equal、a/an、ok、match等。兩者之間使用to或to.be串連。63 詳情請參考:http://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html
【node】----mocha單元測試架構-----【格爾尼卡ぃ】