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