Javascript document.addEventListener不是开玩笑的

Javascript document.addEventListener不是开玩笑的,javascript,jquery,unit-testing,jestjs,code-coverage,Javascript,Jquery,Unit Testing,Jestjs,Code Coverage,我正在使用JEST测试我的脚本。在我的覆盖范围状态下,例如,未覆盖.init const instance = new RecommendCards(); document.addEventListener('DOMContentLoaded', () => { instance.init(); }); 如何介绍instance.init?以下是单元测试解决方案: index.ts: 从“/RecommendCards”导入{RecommendCards}; 导出函数

我正在使用JEST测试我的脚本。在我的覆盖范围状态下,例如,未覆盖.init

  const instance = new RecommendCards();
  document.addEventListener('DOMContentLoaded', () => {
    instance.init();
  });

如何介绍instance.init?

以下是单元测试解决方案:

index.ts:

从“/RecommendCards”导入{RecommendCards}; 导出函数主{ const实例=新的推荐卡; document.addEventListener'DOMContentLoaded',=>{ instance.init; }; } 推荐卡:

出口类推荐卡{ 公共初始化{ 返回“实际执行”; } } index.test.ts:

从“/”导入{main}; 从“/RecommendCards”导入{RecommendCards}; jest.mock./recommendCards',=>{ const mRecommendCards={init:jest.fn}; 返回{RecommendCards:jest.fn=>mRecommendCards}; }; 描述'59927917',=>{ 它“应该通过”,=>{ const mockInstance=新推荐卡; document.addEventListener=jest.fn.mockImplementationOnceevent,回调=>{ 回调; }; 主要的 expectdocument.addEventListener.toBeCalledWith'DOMContentLoaded',expect.anyFunction; expectmockInstance.init.toBeCalledTimes1; }; }; 单元测试结果和覆盖率报告:

通过src/stackoverflow/59927917/index.test.ts 59927917 ✓ 应该超过6毫秒 -----|-----|-----|-----|-----|----------| 文件|%Stmts |%Branch |%Funcs |%Lines |未覆盖的行| -----|-----|-----|-----|-----|----------| 所有文件| 100 | 100 | 100 | 100 || index.ts | 100 | 100 | 100 | 100 || -----|-----|-----|-----|-----|----------| 测试套件:1个通过,共1个 测试:1项通过,共1项 快照:共0个 时间:5.92秒,估计12秒 源代码: