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

يسمح اختبار الوحدة باختبار أقسام صغيرة من الرمز البرمجي بمعزل عن بقية إضافة 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 للحصول على برنامج تعليمي كامل.