Test delle estensioni di Chrome per test delle unità

Il test delle unità consente di testare piccole sezioni di codice in modo isolato dal resto dell'estensione e all'esterno del browser. Ad esempio, puoi scrivere un test delle unità per assicurarti che un metodo helper scriva correttamente un valore nello spazio di archiviazione.

Il codice scritto senza utilizzare API di estensione può essere testato normalmente, utilizzando un framework come Jest. Per semplificare i test del codice in questo modo, valuta l'utilizzo di tecniche come l'inserimento delle dipendenze, che possono aiutarti a rimuovere le dipendenze nello spazio dei nomi di Chrome nell'implementazione di livello inferiore.

Se hai bisogno di testare un codice che include API di estensione, valuta l'utilizzo di simulazioni.

Esempio: utilizzo di simulazioni con Jest

Crea un file jest.config.js, che dichiara un file di configurazione che verrà eseguito prima di tutti i test:

jest.config.js:

module.exports = {
  setupFiles: ['<rootDir>/mock-extension-apis.js']
};

In mock-extension-apis.js, aggiungi le implementazioni per le funzioni specifiche che prevedi di chiamare:

mock-extension-apis.js:

global.chrome = {
  tabs: {
    query: async () => { throw new Error("Unimplemented.") };
  }
};

Quindi utilizza jest.spy per simulare un valore restituito in un test:

test("getActiveTabId returns active tab ID", async () => {
  jest.spyOn(chrome.tabs, "query").mockResolvedValue([{
    id: 3,
    active: true,
    currentWindow: true
  }]);
  expect(await getActiveTabId()).toBe(3);
});

Passaggi successivi

Per assicurarti che l'estensione funzioni come previsto, ti consigliamo di aggiungere test end-to-end. Per un tutorial completo, consulta la pagina Test delle estensioni di Chrome con Puppeteer.