Jest 自己的程式自己測試


Posted by fang on 2020-06-19

先附上 Jest官網,這是一個用來測試自己程式的模組,雖然也在寫程式的時候也可以隨時印出看結果來測試,但是能夠系統化測試還是更方便管理的。


安裝 Just

今天我的電腦要使用 npm 來安裝,先在終端機選取好要存取的位置,然後指令走起:

npm install --save-dev jest

建立測試檔

假設今天要被測試的檔案名稱叫做 index.js ,先放上 index.js 的內容:

function repeat(str, times){
  var result = ''
  for(var i=0; i<times; i++){
    result += str
  }
  return result
}
module.exports = repeat //讓別人可以使用

要新增一個測試檔時,在終端機輸入touch index.test.js,然後開啟檔案,並且輸入測試程式,另外,在此也使用describe讓測試資料群組起來,寫起來更有結構

var repeat = require('./index')

describe('測試 repeat', () => {
    test('a 重複 5 次應該要等於 aaaaa', () => {
      expect(repeat('a', 5)).toBe('aaaaa');
    });
    test('abc 重複 2 次應該要等於 abcabc', () => {
      expect(repeat('abc', 2)).toBe('abcabc');
    });
    test('"" 重複 10 次應該要等於 ""', () => {
      expect(repeat('', 10)).toBe('');
    });
 })

修改 package.json

找到 Scripts,將裡面的 test 執行指令修改為jest,如果想要只測試 index.test.js,就可以輸入jest index.test.js


在終端機上執行

要執行的時候,直接輸入nmp run test,就可以等待結果了。
如果 npm 版本比較新,可以輸入npx jest index.test.js,系統除了本身所在的專案,也會直接在系統本身搜尋 index.test.js,搜尋範圍更大啦!


測試結果

先秀出測試檔案 index.test.js

以及要被測試檔案 index.js

當我們不在 package.json 中修改任何資料時,可以直接在終端機上輸入npx jest index.test.js,執行如下:

如果在 package.json 中修改 test 執行指令為jest,並在終端機輸入npm run test,也是可以執行成功的:

如果今天顯示的是程式碼有誤,Jest 也會顯示哪邊報錯,如下圖:

  • Expected 代表期望的答案
  • Received 代表測試結果

大概就是這樣啦,寫完之後也踏踏實實的測試了一遍這個套件,如果之後使用發現有需要補充的會隨時更改,也歡迎路過看到文章的人幫我看看哪邊寫錯。
ps.其實這個部落格只是我的筆記,所以是寫給自己看的XD


#Jest #Unit Test







Related Posts

[ week10 ] 綜合能力測驗-攻略與解題心得

[ week10 ] 綜合能力測驗-攻略與解題心得

設計模式 - 工廠方法及抽象工廠

設計模式 - 工廠方法及抽象工廠

初探Robot Framework之Keyword設計原則 - 06

初探Robot Framework之Keyword設計原則 - 06


Comments