如何在 Mocha 测试中使用 "define"?

How to use "define" with Mocha tests?

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

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

所以我看到了 this question that suggests 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

要使您的工作正常进行,您必须安装 amdefine 软件包:

npm install amdefine

如果您不喜欢 amdefine 或者您不想将它需要的片段放入您的所有模块中,我建议您只使用 this loader。你这样做:

npm install amd-loader

在您尝试加载 任何 AMD 模块之前:

require("amd-loader");

例如,此 require 调用可能是您的 Mocha 测试文件中的第一件事。这将安装一个能够理解 AMD 格式的加载程序。我已经将其用于数十次测试,没有任何问题。我更喜欢将 amdefine 所需的代码片段放入我的所有模块中。