מדריך בדיקות Jest למפתחי JavaScript
בדיקות עוזרות לך למצוא באגים בשלב מוקדם. הן משפרות את איכות הקוד. הן מאפשרות לך להוציא פיצ'רים חדשים מבלי לשבור קוד קיים.
Jest הוא כלי בדיקות פופולרי עבור JavaScript ו-Node.js. Meta יצרה אותו. הוא עובד עם TypeScript, React, Next.js ו-Express.js.
למה להשתמש ב-Jest?
- הוא דורש הגדרה מינימלית.
- הוא מריץ בדיקות במקביל לצורך מהירות.
- הוא כולל כלי mocking.
- הוא מציג דוחות כיסוי קוד (code coverage).
- הוא מספק הודעות שגיאה ברורות.
איך להגדיר את Jest:
- צור פרויקט Node.js:
npm init -y - התקן את Jest:
npm install --save-dev jest - עדכן את ה-scripts ב-
package.jsonכך שיכללו את"test": "jest" - הרץ בדיקות באמצעות:
npm test
כתיבת בדיקה פשוטה:
צור את sum.js:
function sum(a, b) {
return a + b;
}
module.exports = sum;
צור את sum.test.js:
const sum = require("./sum");
test("adds two numbers", () => {
expect(sum(2, 3)).toBe(5);
});
כלי Jest חיוניים:
- Assertions: השתמש ב-
expect()ו-toBe()כדי לבדוק ערכים. - Objects: השתמש ב-
toEqual()כדי להשוות אובייקטים או מערכים. - Organization: השתמש ב-
describe()כדי לקבץ בדיקות קשורות. - Async: Jest מטפל בפונקציות async באופן טבעי באמצעות
await. - Mocks: השתמש ב-
jest.fn()כדי לדמות פונקציות. זה שומר על הבדיקות מהירות על ידי הימנעות מקריאות API אמיתיות או פניות לבסיס הנתונים. - Hooks: השתמש ב-
beforeEach()ו-afterEach()כדי להגדיר או לנקות נתוני בדיקה.
מדוד את ההצלחה שלך:
הרץ npx jest --coverage כדי לראות את דוח הכיסוי שלך. זה מראה אילו חלקים בקוד שלך חסרים בדיקות.
בדיקת APIs:
השתמש ב-Supertest כדי לבדוק API endpoints. תוכל לבדוק קודי סטטוס (status codes) מבלי להפעיל שרת אמיתי.
Snapshot Testing:
השתמש ב-matchSnapshot() ב-React. זה עוזר לך למצוא שינויי UI בלתי צפויים על ידי השוואת רינדורים (renders) נוכחיים לגרסאות שמורות.
שיטות עבודה מומלצות:
- כתוב בדיקות שמתארות תוצאות.
- הימנע מבדיקת מבנה הקוד הפנימי.
- הימנע משימוש בבסיסי נתונים אמיתיים בבדיקות יחידה (unit tests).
- התמקד בכיסוי משמעותי.
שליטה ב-Jest תעזור לך לבנות תוכנה אמינה.