【问题标题】:Load jQuery into Mocha test for React App将 jQuery 加载到 React App 的 Mocha 测试中
【发布时间】:2016-10-18 13:37:54
【问题描述】:

我创建了一个类似于此处概述的本教程的 Mocha 测试设置:https://github.com/jesstelford/react-testing-mocha-jsdom

我想知道如何将 jQuery 加载到这个结构中。我已经将它作为require('jquery') 测试JS 文件包含在内,但是当我调用$.ajax 时,它会给出一个错误提示TypeError: Attempted to wrap undefined property ajax as function。我怀疑这是因为 Node 没有在浏览器中运行我的 JavaScript。但是,我尝试使用window environment,但仍然没有运气。

我知道传统的方法是在 HTML 标记中包含 jQuery,但我不确定如何在此处执行此操作,因为我没有 HTML 文件。

【问题讨论】:

  • 你在做var $ = require('jquery');吗?
  • @PhilVarg 是的,我就是这么做的。
  • @PhilVarg 抱歉,错误消息实际上有点不同 - 我用正确的更新了它。
  • 我可以问一下你为什么选择首先包含 jQuery 吗?只是为了ajax请求吗?如果是这样,使用 fetch API polyfill 将为您的用户节省相当多的下载字节。除非你必须支持像 IE8 这样的旧浏览器,否则真的没有理由再使用 jQuery。

标签: javascript jquery reactjs mocha.js sinon


【解决方案1】:

对于 mocha 中的某些 jquery 方法,这是一种对我有用的模式,我不确定它是否适用于 ajax,但试一试,让我知道。

import jsdom from 'jsdom'
import _$ from 'jquery'

global.document = jsdom.jsdom('<!doctype html><html><body></body></html>')
global.window = global.document.defaultView
const $ = _$(global.window)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-30
  • 1970-01-01
相关资源
最近更新 更多