javascript - 如何用 Jest 模拟 window.Raven

标签 javascript unit-testing jestjs sentry

我正在对 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/

相关文章:

javascript - React Native Websocket外部访问

javascript - 无法从 Angularjs 组件访问 Popover 模板上的变量

java - Eclipse、Maven 和代码覆盖率

python - Django:类对象没有标准函数的属性

jestjs - 手动模拟未被拾取

javascript - 如何加载json文件?

javascript - 使用 JQuery 将 JSON 数组数据的选择打印到页面

xcode - 如何在每个构建上自动执行单元测试?

reactjs - enzyme :类型错误:适配器不是构造函数

javascript - 在 React 组件之外测试 mousedown 事件 : Jest + Enzyme