Chrome 확장 프로그램 단위 테스트

단위 테스트를 사용하면 작은 코드 섹션을 나머지 확장 프로그램과 분리하여 그리고 브라우저 외부에서 테스트할 수 있습니다. 예를 들어 도우미 메서드가 저장소에 값을 올바르게 쓰는지 확인하는 단위 테스트를 작성할 수 있습니다.

확장 API를 사용하지 않고 작성된 코드는 Jest와 같은 프레임워크를 사용하여 정상적으로 테스트할 수 있습니다. 이러한 방식으로 코드를 더 쉽게 테스트하려면 하위 수준 구현에서 Chrome 네임스페이스의 종속 항목을 삭제하는 데 도움이 되는 종속 항목 삽입과 같은 기법을 사용하는 것이 좋습니다.

확장 API가 포함된 코드를 테스트해야 하는 경우 모의를 사용하는 것이 좋습니다.

예: 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);
});

다음 단계

확장 프로그램이 예상대로 작동하도록 하려면 엔드 투 엔드 테스트를 추가하는 것이 좋습니다. 전체 가이드는 Puppeteer로 Chrome 확장 프로그램 테스트를 참조하세요.