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