واحد در حال آزمایش برنامه‌های افزودنی Chrome

تست واحد به بخش‌های کوچکی از کد اجازه می‌دهد جدا از بقیه برنامه‌های افزودنی شما و خارج از مرورگر آزمایش شوند. به عنوان مثال، می توانید یک تست واحد بنویسید تا مطمئن شوید که یک روش کمکی به درستی یک مقدار را در ذخیره سازی می نویسد.

کد نوشته شده بدون استفاده از برنامه های افزودنی API را می توان به طور معمول با استفاده از چارچوبی مانند Jest آزمایش کرد. برای آسان‌تر کردن تست کد از این طریق، از تکنیک‌هایی مانند تزریق وابستگی استفاده کنید که می‌تواند به حذف وابستگی‌ها در فضای نام کروم در پیاده‌سازی سطح پایین‌تر شما کمک کند.

اگر نیاز به آزمایش کدی دارید که شامل APIهای افزونه است، از ماک استفاده کنید.

مثال: استفاده از ماک با جست

یک فایل 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);
});

مراحل بعدی

برای اطمینان از عملکرد برنامه‌های افزودنی شما همانطور که انتظار می‌رود، توصیه می‌کنیم آزمایش‌های سرتاسری را اضافه کنید. برای آموزش کامل به تست افزونه های کروم با Puppeteer مراجعه کنید.