我正在对 Redux 应用程序的自定义 Sentry 中间件进行单元测试。选择的测试框架是 Jest。我已经尝试了每种模拟 window.Raven
的方法,但无法使其工作。
window.Raven = {
isSetup: jest.fn(() => false)
}
...
expect(Raven.isSetup).toHaveBeenCalled()
我错过了什么?我需要使用 jest.setMock('raven-js')
来代替吗?
最佳答案
我维持raven-for-redux不出所料,这是一个 Raven 中间件或 Redux。它包含一个 Jest 测试套件,所以我必须解决类似的问题。我没有选择模拟 Raven,而是选择使用 Raven.setTransport() 简单地指定自定义传输。这使我能够在测试中避免网络调用,但仍然准确测试 Raven 想要做的事情。
您可以在这里找到整个测试:https://github.com/captbaritone/raven-for-redux/blob/master/index.test.js
关于javascript - 如何用 Jest 模拟 window.Raven,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43892947/