如何在Mocha测试中使用“定义”?

And*_*ena 3 javascript testing mocha.js node.js

我开始进行JS测试,因此决定选择Mocha。

我要测试的模块是AMD / RequireJS。但是,看来Mocha仅与CommonJS模块兼容。因此,当我运行它时,define未定义

所以,我已经看到了这个问题,这意味着该文件

如果这确实是要走的路,我可以这样定义我的模块:

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 () {};
});
Run Code Online (Sandbox Code Playgroud)

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

Lou*_*uis 5

对于您要执行的工作,必须安装该amdefine软件包:

npm install amdefine
Run Code Online (Sandbox Code Playgroud)

如果您不喜欢amdefine或不想在所有模块中放入所需的代码段,建议您使用此加载程序。你做:

npm install amd-loader
Run Code Online (Sandbox Code Playgroud)

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

require("amd-loader");
Run Code Online (Sandbox Code Playgroud)

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