利用 Jest 來寫你的第一個測試!
Jest是由Facebook,Inc.維護的JavaScript測試框架,其重點是簡單性 。 維基百科
步驟 Jest官網
資料夾先 init ,複習 npm
npm init
安裝 Jest
npm install jest
打開 package.json , dependencies 有剛剛下載的 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 看到 scripts 把 jest 加進去

執行
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)


