2014-09-01 211 views
1

我是新來單元測試,我想了解如何單元測試node.js項目,但我不確定爲什麼我當前的測試不工作。單元測試使用茉莉花單元測試框架node.js

我有2個文件fed.js(SRC)和fed.spec.js(SPEC)

這是當我運行此我得到的錯誤...

錯誤:

Snap should return 142 
Expected undefined to be 142. 
Error: Expected undefined to be 142. 

的JIST:

我我試圖運行一個測試,以確保變量AllowanceAdditional(位於fed.js)等於142

所以我跑了茉莉單元測試(位於fed.spec.js),並指出我預期的津貼額外等於(==)或成爲(===)142.但是我得到的錯誤是AllowanceAdditional未定義...

有人可以教我或指向正確的方向,我不知道不明白爲什麼這不起作用。我究竟做錯了什麼?我希望我的問題是有道理的,如果不是請告訴我,我將進一步明確

+0

對不起,添加了額外的信息。我期望變量AllowanceAdditional返回142,但它說它返回「undefined」 – mosawi 2014-09-02 00:11:01

回答

1

您必須將其導出:

exports.AllowanceAdditional = 142; 

在JavaScript中,還有其他的方式來表達這一點。

在我的實踐,我通常使用:

function() { 
    this.AllowanceAdditional = 142; 
}.call(this); 

問題的關鍵是你的全局變量和函數附加到的適當範圍,以便Node.js的可以找到它們。

在瀏覽器內部,由於.call(this)將始終通過window對象。它被附加到全球範圍。

+0

我正在導出它,我使用module.exports = snap導出整個捕捉對象。我的問題更多是關於如何讓我的測試通過? – mosawi 2014-09-02 02:01:05

+0

您的意思是我應該添加thie exports.AllowanceAdditional = 142;在src文件或spec文件中? – mosawi 2014-09-02 02:02:27

+0

src文件,節點需要能夠找到它 – beautifulcoder 2014-09-02 15:29:01