1
所以我試圖通過一個Mongoose項目的教程,TDD風格,爲每個步驟應該完成的任務編寫測試來教自己茉莉花(對於節點)然後按照實際教程等。檢查使用茉莉節點加載的節點模塊
當然,我的第一個測試是失敗的。
app.js在這一點上是兩條線:
var mongoose = require('mongoose');
console.log(mongoose.version);
這運行正常。我的測試然而,仍然未能:
var app = require('../src/app.js');
describe('App startup', function() {
it('loads mongoose', function() {
expect(app.mongoose.version).toBeDefined();
});
it('loads jasmine-jquery', function() {
expect($).toBeDefined();
});
});
結果
Failures:
1) App startup loads mongoose
Message:
TypeError: Cannot read property 'version' of undefined
Stacktrace:
TypeError: Cannot read property 'version' of undefined
at null.<anonymous> (/home/jbhelfrich/mongooseBlog/spec/init.spec.js:5:36)
(jQuery的測試,當然,預計在這一點上仍然要失敗的。)我一直有和沒有嘗試過「應用程序」。在expect語句中,但我得到了同樣的錯誤 - 測試套件沒有看到app.js的內部結構。但是我知道它正確加載了app.js文件,因爲它正在運行它 - console.log輸出出現在測試結果之前。
所以我懷疑我誤解了一些關於範圍或其他菜鳥錯誤的基礎知識,但我不確定那是什麼。
工作就像一個魅力,謝謝!是否有任何理由(安全,性能)來消除出口。來自生產代碼的行,還是可以單獨留下? –
jbhelfrich
沒有理由刪除導出,因爲如果您不導出變量,那麼它們無法在模塊之外訪問。 – hexacyanide