यूनिट टेस्टिंग Chrome एक्सटेंशन

यूनिट टेस्टिंग की मदद से, कोड के छोटे सेक्शन की जांच, आपके बाकी एक्सटेंशन और ब्राउज़र के बाहर से की जा सकती है. उदाहरण के लिए, एक यूनिट टेस्ट लिखा जा सकता है, ताकि यह पक्का किया जा सके कि हेल्पर वाला कोई तरीका, स्टोरेज में सही वैल्यू लिखता है.

एक्सटेंशन एपीआई का इस्तेमाल किए बिना लिखे गए कोड की जांच, सामान्य तरीके से की जा सकती है. इसके लिए, Jest जैसे फ़्रेमवर्क का इस्तेमाल किया जा सकता है. कोड की इस तरह आसानी से जांच करने के लिए, डिपेंडेंसी इंजेक्शन जैसी तकनीकों का इस्तेमाल करें. इससे निचले लेवल लागू करने में, Chrome नेमस्पेस पर निर्भरता को हटाने में मदद मिल सकती है.

अगर आपको ऐसे कोड की जांच करनी है जिसमें एक्सटेंशन एपीआई शामिल हैं, तो मॉक इस्तेमाल करें.

उदाहरण: जेस्ट के साथ मॉक इस्तेमाल करना

एक 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 की मदद से Chrome एक्सटेंशन की जांच करना लेख पढ़ें.