今天的重點是單元測試,這是檢查程式碼穩定性的重要工具。我們會用Jest來測試Todo List專案,確保每個功能都正常運作。
單元測試的作用
簡單來說,單元測試就是讓我們確認每個小功能都能按預期運行。像是新增待辦事項時,測試能幫助確保不會影響到其他功能,比如刪除或儲存待辦事項。
使用Jest
Jest是一個方便的測試框架,我們可以很快上手。安裝它很簡單:
npm install --save-dev jest
接著簡單的測試,比如測試addTodoItem這個功能:
// todo.test.js
const { addTodoItem } = require('./todo.js');
test('應該新增待辦事項', () => {
const todos = [];
const newItem = { text: 'Learn JavaScript', completed: false };
addTodoItem(todos, newItem);
expect(todos).toContain(newItem);
});
這段程式碼是確認我們新增的待辦事項有被正確添加到清單中。
測試更多功能
除了新增,還有其他功能需要測試,比如刪除待辦事項:
test('應該刪除已完成的待辦事項', () => {
let todos = [
{ text: 'Learn JavaScript', completed: true },
{ text: 'Write Unit Test', completed: false }
];
deleteCompletedTodos(todos);
expect(todos.length).toBe(1);
expect(todos[0].text).toBe('Write Unit Test');
});
這樣我們可以確定刪除功能正常工作,不會誤刪未完成的項目。
為什麼這麼重要?
測試讓我們在修改程式碼時不會意外搞壞功能。雖然要花點時間編寫測試,但長期來說會節省更多除錯時間。