1. 程式人生 > >【node】----mocha單元測試框架-----【格爾尼卡ぃ】

【node】----mocha單元測試框架-----【格爾尼卡ぃ】

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 
 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的值是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單元測試框架-----【格爾尼卡ぃ】