如何在jest

时间:2016-09-29 08:08:11

标签: jquery webpack jestjs

我需要测试对某些需要全局jquery实例的遗留代码具有依赖性的反应组件。通过我们的webpack / karma / mocha设置,我们可以将其设置为:

new webpack.ProvidePlugin({'$':'jquery' })

有没有办法为开玩笑做同样的事情?

我完全知道在我的测试中嘲笑依赖项,但我正在寻找更通用的解决方案。那么有没有办法使用Jest与webpack具有相同的行为。

1 个答案:

答案 0 :(得分:0)

最简单的方法就是像这样覆盖它:

const ajax = jest.fn((options) => {
  if (/\/successPath/.test(options.url)) {
    return options.success('someData', '', { status: 200 });
  }
  return options.error({ status: 404, responseText: 'someError' });
});
global.$ = { ajax: ajax };

所以只需用一个模拟替换它,只需保存模块中需要使用的功能。