我正在尝试对Intern进行测试,以查看它是否适合测试框架。我正在尝试在实习生中测试以下代码。
var HelloWorld;
HelloWorld = (function () {
function HelloWorld (name) {
this.name = name || "N/A";
}
HelloWorld.prototype.printHello = function() {
console.log('Hello, ' + this.name);
};
HelloWorld.prototype.changeName = function(name) {
if (name === null || name === undefined) {
throw new Error('Name is required');
}
this.name = name;
};
return HelloWorld;
})();
exports = module.exports = HelloWorld;
该文件位于“js-test-projects/node/lib/HelloWorld.js”中,而Intern位于“js-test-projects/intern”中。我正在使用Intern的1.0.0分支。每当我尝试包含文件并运行测试时,“默认为控制台报告程序”之后都不会得到任何输出。这是测试文件。
define([
'intern!tdd',
'intern/chai!assert',
'dojo/node!../lib/HelloWorld'
], function (tdd, assert, HelloWorld) {
console.log(HelloWorld);
});
最佳答案
1.假定以下目录结构(基于问题):
js-test-projects/
node/
lib/
HelloWorld.js - `HelloWorld` Node module
tests/
HelloWorld.js - Tests for `HelloWorld`
intern.js - Intern configuration file
intern/
2.您的Intern配置文件应包含有关
node
包和要运行的任何套件的信息:// ...
// Configuration options for the module loader
loader: {
// Packages that should be registered with the loader in each testing environment
packages: [ 'node' ]
},
// Non-functional test suite(s) to run
suites: [ 'node/tests/HelloWorld' ]
// ...
3.您的测试文件应使用Intern的Dojo版本加载
HelloWorld
,如下所示:define([
'intern!tdd',
'intern/chai!assert',
'intern/dojo/node!./node/lib/HelloWorld.js'
], function (tdd, assert, HelloWorld) {
console.log(HelloWorld);
});
注意:在此AMD测试中,您不必使用Intern版本的Dojo来加载
HelloWorld
节点模块,这只是一种便捷的方式。如果您还有其他需要节点模块的AMD插件,那就很好了。4.最后,要在Node.js环境中运行测试,请通过从
client.js
目录中发出以下命令来使用Intern的intern
节点运行程序:node client.js config=node/tests/intern
关于intern - 无法让实习生运行Node.js模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16466115/