如何在摩卡测试中使用“定义”

How to use "define" with Mocha tests?

本文关键字:定义 摩卡 测试      更新时间:2023-09-26

我正在开始进行JS测试,我决定使用摩卡。

我想测试的模块是 AMD/RequireJS。但是,Mocha似乎只与CommonJS模块兼容。因此,当我运行它时,未定义定义

所以我看到了这个问题,它暗示了这个文档。

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

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 模块的推荐方法吗?如果是这样,如何在摩卡测试中定义amdefine

要使

你尝试做的事情工作,你必须安装 amdefine 包:

npm install amdefine

如果您不喜欢amdefine或者不想将它所需的代码段放在所有模块中,我建议您只使用此加载器。是吗:

npm install amd-loader

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

require("amd-loader");

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