الوحدة التي تختبر إضافات Chrome

يسمح اختبار الوحدة باختبار أقسام صغيرة من الرمز بمعزل عن باقي الإضافات وخارج المتصفح. على سبيل المثال، يمكنك كتابة اختبار وحدة للتأكد من أن إحدى الطرق المساعدة تكتب قيمة في التخزين بشكل صحيح.

يمكن اختبار الرمز المكتوب بدون استخدام واجهات برمجة تطبيقات الإضافات كالمعتاد، وذلك باستخدام إطار عمل مثل Jest. لتسهيل اختبار الرمز البرمجي بهذه الطريقة، ننصحك باستخدام أساليب مثل إدخال معلومات الاعتماد التي يمكن أن تساعد في إزالة العناصر الاعتمادية من مساحة اسم Chrome عند تنفيذ المستويات الأدنى.

إذا كنت بحاجة إلى اختبار الرمز الذي يتضمن واجهات برمجة تطبيقات للإضافات، ففكر في استخدام نماذج.

مثال: استخدام نماذج مع 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 للحصول على دليل توجيهي كامل.