2014-04-10 41 views
0

我還是比較新的測試,並且試圖弄清楚如何在jasmine,node中測試一個函數。到目前爲止,我只測試了我的對象上的方法。從節點jasmin中測試函數

我有一個node.js模塊,它只導出我的兩個函數,但我需要能夠測試其他函數而不導出它們,因爲我不希望它們公開。

這是一些示例代碼,作爲真正的代碼並不重要

function initialize(item){ 
    //do some initializing 
    return item; 
} 

function update(x){ 
    if(!this.initialized){ 
     initialize(this); 
    } 
    this.value = x; 
    return this; 
} 

module.exports.update = update; 

如何我會寫的初始化函數的測試,而無需使用更新方法? 有沒有辦法做到這一點?或者所有東西都必須是對象的一部分,然後我只導出我需要的部分?

+0

你想要做什麼?獨立於'update'測試'initialize'? – Louis

+0

對不起,是的,我想獨立測試初始化​​。 – pedalpete

回答

1

通過設計,您不導出的功能無法從外部訪問。您的測試需要您的模塊只能看到導出。所以你只能通過調用更新函數來測試初始化​​函數。由於模塊只是在每次測試之前清除require緩存以便再次需要具有全新/未初始化狀態的模塊時才初始化。 Clearing the require cache被官方允許/不是黑客。