[筆記] Jest


Posted by tzutzu858 on 2020-06-29

利用 Jest 來寫你的第一個測試!

Jest是由Facebook,Inc.維護的JavaScript測試框架,其重點是簡單性 。 維基百科

步驟 Jest官網

資料夾先 init ,複習 npm

npm init

安裝 Jest

npm install jest

打開 package.jsondependencies 有剛剛下載的 Jest

一個 index.js 寫 function

function double(n){
   return n * 2
}
module.exports = double

一個檔案寫測試 index.test.js 用 XXX.test.js 是個慣例

var result = require('./index')

test(' 5*2 要等於 10 ', () => {
  expect(result(5)).toBe(10);
});

注意不是用 node 來跑,應該是要下 jest
因此打開 package.json 看到 scriptsjest 加進去

執行

npm run test

  • 錯的話就是 FAIL ,會跟你說錯在哪
  • 對的話就 PASS

為何在外面不能直接下 jest 指令,因為 jest 是安裝在你的專案底下
所以如果用 npm 指令來跑,他會先找你專案底下的東西,找到 jest ,就可以利用它來執行。可是在外面就是系統來跑,系統是在其他地方找看你有沒有安裝,可是你沒有,你是安裝在專案底下,所以才會用這種寫法。


版本比較新可以在外面直接下

npx jest index.test.js

npx 附在比較新的 npm 版本裡面,下 npx 他就會 npm 底下找 jest 。

多個測試,要幾個有幾個

var result = require('./index')

test(' 5*2 要等於 10 ', () => {
  expect(result(5)).toBe(10);
});

test(' 7*2 要等於 14 ', () => {
  expect(result(7)).toBe(14);
});

test(' 2*2 要等於 4 ', () => {
  expect(result(2)).toBe(4);
});

太分散,用個組合比較有結構

var result = require('./index')

describe ('測試', funstion(){

       test(' 5*2 要等於 10 ', () => {
         expect(result(5)).toBe(10);
       });

       test(' 7*2 要等於 14 ', () => {
         expect(result(7)).toBe(14);
       });

       test(' 2*2 要等於 4 ', () => {
         expect(result(2)).toBe(4);
       });
})

最後 : 先寫測試再寫程式:TDD (測試驅動開發)
TDD (Test-Driven Development)


#Jest







Related Posts

day_02: 我不會寫函式

day_02: 我不會寫函式

Top issues on OWASP

Top issues on OWASP

[Day 06]: Docker Network-2

[Day 06]: Docker Network-2


Comments