בדיקת יחידה של תוספים ל-Chrome

בדיקת יחידה מאפשרת לבדוק קטעי קוד קטנים בנפרד משאר התוסף ומחוץ לדפדפן. לדוגמה, תוכלו לכתוב בדיקת יחידה כדי לוודא ש-method עזר כותב ערך לאחסון בצורה נכונה.

אפשר לבדוק קוד שנכתב בלי להשתמש בממשקי API של תוספים כרגיל, באמצעות מסגרת כמו Jest. כדי שיהיה קל יותר לבדוק את הקוד בדרך הזו, כדאי להשתמש בטכניקות כמו החדרת תלות שיכולה לעזור בהסרה של יחסי תלות ב-Chrome מרחב השמות בהטמעה ברמה הנמוכה יותר.

אם אתם צריכים לבדוק קוד שכולל ממשקי API של תוספים, מומלץ להשתמש בהדמיות.

דוגמה: שימוש במודלים מדומים (mocks) עם Jest

יוצרים קובץ jest.config.js, שבו מוצהר על קובץ הגדרה שיופעל לפני כל הבדיקות:

jest.config.js:

module.exports = {
  setupFiles: ['<rootDir>/mock-extension-apis.js']
};

ב-mock-extension-apis.js, מוסיפים הטמעות לפונקציות הספציפיות שרוצים להפעיל:

mock-extension-apis.js:

global.chrome = {
  tabs: {
    query: async () => { throw new Error("Unimplemented.") };
  }
};

לאחר מכן, משתמשים ב-jest.spy כדי ליצור ערכים מדומים של ערכים חזרה בבדיקה:

test("getActiveTabId returns active tab ID", async () => {
  jest.spyOn(chrome.tabs, "query").mockResolvedValue([{
    id: 3,
    active: true,
    currentWindow: true
  }]);
  expect(await getActiveTabId()).toBe(3);
});

השלבים הבאים

כדי לוודא שהתוסף פועל כצפוי, מומלץ להוסיף בדיקות מקצה לקצה. במדריך המלא בדיקת תוספי Chrome באמצעות Puppeteer מוסבר איך עושים את זה.