沒有用套件前會怎麼看自己有沒有寫錯?
console.log()
自己對答案===
去對答案console.log(repeat("a", 5) === "aaaaa")
看有沒有truefunction repeat(str,times) {
var result = ""
for (var i=0; i < times; i++) {
result += str;
}
return result
}
console.log(repeat("a",5)) //aaaaa
console.log(repeat("a",5) === "aaaaa") //true
使用套件Jest:先到Jest官網安裝。一樣在terminal
輸入指令npm install --save-dev jest
(這裡採用npm方式安裝,官方也有提供yarn
)
通常會把主程式跟測試分開管理:新增一個index.test.js
檔案來做為測試。
//主程式 index.js
function repeat(str,times) {
var result = ""
for (var i=0; i < times; i++) {
result += str;
}
return result
}
module.exports = repeat
//index.test.js
var repeat = require("./index.js") //這裡是引用檔案名稱,不是function名稱
describe("測試 repeat",function() {
test('a 重覆5次要等於 aaaaa', function() {
expect(repeat("a",5)).toBe("aaaaa");
});
test('abc 重覆2次要等於 abcabc', function() {
expect(repeat("abc",2)).toBe("abcabc");
});
test(' ""空字串 重覆10次要等於 ""空字串', function() {
expect(repeat("",10)).toBe("");
});
})
test語法一樣從官網看
使用Jest可以不用自己一行一行寫console.log,再用describe把整個測試放在一起,收納好整理。
寫完怎麼跑?修改package.json
檔案的scripts test
"scripts": {
"test": "jest" //改成 jest
},
// 要對單一檔案做執行:"test": "jest index.test.js" -> 改成 jest接檔案名稱。
修改好後,在terminal
執行npm run test
就會開始跑了。
Test-driven Development (TDD) 測試驅動開發
測試驅動開發是一種開發流程,用一句白話形容,就是「先寫測試再開發」。先寫測試除了能確保測試程式的撰寫,還有一個好處:有助於在開發初期釐清程式介面如何設計。