0
嘗試使用nodejs和jasmine-node對客戶端JavaScript執行單元測試。 我能夠創建窗口和文檔變量,$變量,設置環境(使用npm,不要忘記定義NODE_PATH!)。但現在我堅持這一點。使用nodejs確定機制並要求
我想測試的功能在模塊中。我可以導入(需要)模塊,但導入模塊的變量無法從nodejs訪問(或者出於與我想象的相同原因的茉莉花spec文件)。
這裏是模塊:
var test_module = (function() {
var init = function() {
return "toto";
}
return { init: init };
})();
在變test_module,我們應該找到含有所有的導出函數(這裏只有一個名爲INIT)字典中的變量。
在的NodeJS:
> require('test.js');
{}
> test_module
ReferenceError: test_module is not defined
at repl:1:2
at REPLServer.self.eval (repl.js:110:21)
at Interface.<anonymous> (repl.js:239:12)
at Interface.EventEmitter.emit (events.js:95:17)
at Interface._onLine (readline.js:202:10)
at Interface._line (readline.js:531:8)
at Interface._ttyWrite (readline.js:760:14)
at ReadStream.onkeypress (readline.js:99:10)
at ReadStream.EventEmitter.emit (events.js:98:17)
at emitKey (readline.js:1095:12)
我不知道理解的範圍界定在怎樣的NodeJS工作。我試圖把:
global.test_module = (function() {
和這個工程,但這不是我想要做的。我的JavaScript應該在瀏覽器中運行一次,全球不會這樣做...
注意:單元測試客戶端JavaScript使用命令行,瀏覽器和服務器解決方案應該得到神教程我猜。有一些在那裏,但他們通常不完整。
您還需要將模塊'module.exports = test_module'導出到模塊文件的末尾。然後從你的主文件'var test_module = require(「test.js」);' – htatche
你不應該在node.js中測試瀏覽器代碼 – vkurchatkin
對於htatche:是的,但這是一個nodejs的東西......瀏覽器如何管理這個。我認爲它不會喜歡這個出口業務。這裏的目的是單元測試一個客戶端JavaScript模塊,所以一個模塊從一個HTML頁面中的