我使用Jasmine-Node来测试Javascript代码。如何在JavaScript中导出和导入两个不同的函数对象?
如何导出两个不同的函数对象,如Confusions1和Confusions2,以便两者都可以在Jasmine-Node测试文件中使用?
我的尝试是这样的:
// confusions.js
var Confusions1 = function() {};
Confusions1.prototype.foo = function(num) {
// keep track of how many times `foo` is called
this.count++;
}
module.exports = Confusions1;
// second function object
var Confusions2 = function() {};
Confusions2.prototype.foo = function() {
var a = 2;
this.bar();
};
Confusions2.prototype.bar = function() {
return this.a;
}
module.exports = Confusions2;
我的茉莉花测试文件:
// confusions.spec.js
var Confusion = require('./confusions.js');
describe("chapter 1, common misconception ", function() {
describe("to assume `this` refers to the function itself: ", function() {
var confusion = new Confusion();
// some test code omitted
});
describe("to assume `this` refers to the function's scope", function() {
var confusion = new Confusion();
// test code omitted
});
});
我想它,以便Confusions1和Confusions2从confusions.js
都可用在两个嵌套的描述中块confusions.spec.js
我假设我必须以某种方式初始化不同的对象后需要文件var Confusion = require('./confusions.js');
类似var confusion1 = new Confusions1(); var confusion2 = new Confusions2();
但究竟如何(不分裂两个对象在两个单独的文件中)?
有没有一种方法可以快速TES你的代码没有茉莉节点样板吗?当我用你的方法调整我的测试时,我得到一个TypeError,因为Confusion1/Confusion2在测试中未定义... – StandardNerd
节点样板是什么?没有任何关系到任何测试框架,它只是关于节点模块系统。从上面创建两个模块并运行'node bar.test.js' – Srle