使用 Node NOT io.js 在 Mocha 测试中使用 jQuery

Posted

技术标签:

【中文标题】使用 Node NOT io.js 在 Mocha 测试中使用 jQuery【英文标题】:Using jQuery in Mocha tests with Node NOT io.js 【发布时间】:2015-12-09 05:55:06 【问题描述】:

我正在运行一个使用 jQuery(用于 ajax 调用)的模块的 Mocha/Chai 单元测试,当然 jQuery 会抱怨缺少文档,因为我在没有浏览器的情况下运行测试。我发现创建虚拟 dom 的 jsdom 模块可以欺骗 jquery,但是该项目已经放弃了 node.js 以支持 io.js 并且不能与 node 一起使用。我认为我不想在项目中间切换到 io.js,所以我的问题是:

目前在命令行中使用 jQuery 进行 Mocha 测试有什么明智的方法吗?

【问题讨论】:

【参考方案1】:

Node 可以使用内置的 http 模块发出自己的 HTTP 请求。你不需要 jQuery。还有 request 模块非常好,可能还有很多其他的。

您的选择是:

    不要使用 jQuery 还是切换到 iojs(或node 4) 安装旧版本(早于版本 4)的 jsdom,仍然允许您使用旧版本的节点

【讨论】:

感谢您的建议。我正在使用 browserify 模块编写一个 webapp,并且在测试模块中使用了 jQuery,所以我现在想继续使用 jQuery。 Node 4 是 3 天前出来的,所以它只是自找麻烦,安装 jsdom 3.x.x 在重建 node-gyp 时失败。但是,在浏览器(或虚拟浏览器)中运行测试不应该也解决 jQuery 问题吗? @konrad node 4 的 stable 版本最近发布了。在此之前,节点 4 的候选版本已经有一段时间了。 好的,但是主要版本的更新不是意味着有一些重大变化并且 npm 生态系统可能不是完全最新的吗?可能我应该只使用 n 或 nvm 来检查,但事实上我有点厌倦了重新配置东西来完成一件简单的事情。 :-) 无论如何,谢谢,可能在几个月后,您的答案将是唯一明智的答案。 @konrad 是的,有重大更改,但您可以通读更改日志以查看它们是什么,并在新版本中测试我们的代码。我很确定它们实际上不会影响您。

以上是关于使用 Node NOT io.js 在 Mocha 测试中使用 jQuery的主要内容,如果未能解决你的问题,请参考以下文章

使用 node-inspector 调试 node.js

Windows 使用 node-gyp

Node.js详解整理:node.js的优势特点优缺点及适用场景,安装及基本使用

node-gyp的使用

Node - 使用 NODE_MODULE_VERSION 72 针对不同的 Node.js 版本进行编译

bindings.node' 是针对不同的 Node.js 版本使用 NODE_MODULE_VERSION 93 编译的。此版本的 Node.js 需要 NODE_MODULE_VERSION 89