如何使用"定义"用摩卡测试?

时间:2015-03-10 11:42:45

标签: javascript node.js testing mocha

我开始使用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

1 个答案:

答案 0 :(得分:4)

对于您要尝试的工作,您必须安装amdefine包:

npm install amdefine

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

npm install amd-loader

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

require("amd-loader");

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