【node】----mocha單元測試框架-----【格爾尼卡ぃ】
阿新 • • 發佈:2018-10-28
ins number ber moc tutorial ride 對象 單元測試框架 cal
一、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*b 12 } 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 84、在接下來的測試中我們用expect進行測試 9 10 const expect = require("chai").expect; 11 12 describe("對計算器模塊的測試",function(){ 13 //對模塊的測試放在it裏面 14 it("測試加法",function(){ 15 16 //相等不相等的判斷 17 //測試:斷定add方法1+2的值是3 18 expect(calculator.add(1,2)).to.equal(3) 19 20 //測試:斷定add方法1+2的值不等於3 21 expect(calculator.add(1,2)).to.not.equal(10) 22 23 24 //類型的判斷 25 //測試:斷定add方法的返回值得類型是number 26 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方法的返回值的長度是3 36 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 //測試:斷定這個值得布爾值的類型是true 52 expect("abc").to.be.ok; 53 54 //測試:斷定這個值得布爾值的類型不是true 55 expect("").to.be.not.ok; 56 }) 57 }) 58 59 mocha還可以監聽腳本的變化 mocha --watch 60 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單元測試框架-----【格爾尼卡ぃ】