【问题标题】:How to use "define" with Mocha tests?如何在 Mocha 测试中使用“定义”?
【发布时间】:2015-05-11 20:09:13
【问题描述】:

我开始进行 JS 测试,我决定使用 Mocha。

我要测试的模块是 AMD/RequireJS。但是,似乎 Mocha 仅与 CommonJS 模块兼容。所以,当我运行它时,define 没有定义

所以我看到this question 暗示this document

如果这真的是要走的路,我会这样定义我的模块:

if (typeof define !== 'function') {
    var define = require('amdefine')(module);
}

define(function(require) {
    var dep = require('dependency');

    //The value returned from the function is
    //used as the module export visible to Node.
    return function () {};
});

但是现在我运行 Mocha 时没有定义 amddefine 模块。我不习惯 Node.js,所以我的问题是:这是用 Mocha 测试 AMD 模块的推荐方法吗?如果是这样,我如何在我的 Mocha 测试中定义 amdefine

【问题讨论】:

  • 您是否安装了amddefine 模块? Node.js 仅支持开箱即用的 CommonJS 模块。如果您想与 AMD 合作,则必须安装此第三方模块。
  • @mbcrute,谢谢,你能告诉我怎么做吗?
  • 通常项目的 Github 页面是您可以找到最相关文档的地方。 amddefine 位于 github.com/jrburke/amdefine。要使用 Node 安装任何第三方模块,您只需 npm install <module_name> 因此,在这种情况下,您将运行 npm install amddefine

标签: javascript node.js testing mocha.js


【解决方案1】:

对于你想要做的工作,你必须安装amdefine 包:

npm install amdefine

如果你不喜欢amdefine 或者你不想把它需要的sn-p 放在你所有的模块中,我建议你只使用this loader。你这样做:

npm install amd-loader

在您尝试加载 任何 AMD 模块之前,您需要执行以下操作:

require("amd-loader");

例如,这个require 调用可能是您的 Mocha 测试文件中的第一件事。这将安装一个能够理解 AMD 格式的加载程序。我已经用它进行了几十次测试,没有任何问题。我更喜欢将 amdefine 需要的代码 sn-p 放在我的所有模块中。

【讨论】:

    猜你喜欢
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 2020-11-13
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    相关资源
    最近更新 更多