我开始使用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
?
答案 0 :(得分:4)
对于您要尝试的工作,您必须安装amdefine
包:
npm install amdefine
如果您不喜欢amdefine
或者您不想在所有模块中放置它所需的代码段,我建议您只使用this loader。你这样做:
npm install amd-loader
在您尝试加载任何 AMD模块之前:
require("amd-loader");
例如,此require
调用可能是您的Mocha测试文件中的第一件事。这将安装一个能够理解AMD格式的加载器。我已经使用了几十个没有任何问题的测试。我更喜欢将amdefine
所需的代码段放在我的所有模块中。