在 Jest 中存根窗口函数

新手上路,请多包涵

在我的代码中,我在点击 window.confirm 提示时触发了一个回调,我想测试回调是否被触发。

sinon 中,我可以通过以下方式存根 window.confirm 函数:

 const confirmStub = sinon.stub(window, 'confirm');
confirmStub.returns(true);

有没有办法在 Jest 中实现这种存根?

原文由 Yangshun Tay 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 312
2 个回答

开个玩笑,您可以使用 global 覆盖它们。

 global.confirm = () => true

就像开玩笑一样,每个测试文件都在自己的进程中运行,您不必重置设置。

原文由 Andreas Köberle 发布,翻译遵循 CC BY-SA 3.0 许可协议

我刚刚使用了 Jest mock ,它对我有用:

    it("should call my function", () => {
      // use mockImplementation if you want to return a value
      window.confirm = jest.fn().mockImplementation(() => true)

      fireEvent.click(getByText("Supprimer"))

      expect(window.confirm).toHaveBeenCalled()
}

原文由 pom421 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题