2016-06-09 52 views
1

我目前正在編寫一個在私人環境中使用的API。一些引入的功能是第三方功能的promisified版本。如何在nodejs中測試第三方代碼?

例子:

第三方代碼:

function someFunction(argument, callback) { 
    var command = stuff; 
    return this.exec(command, parse_command(callback)); 
} 

我的代碼:

function promisifiedFunction() { 
    new Promise(function (resolve, reject) { 
     third-party.someFunction('argument', function (err, status) { 
      if (err) { 
       return reject(new Error("FOO")); 
      } else { 
       return resolve(status.result); 
      } 
     }); 
    }); 
} 

如何正確單元測試這些功能呢?

(注意,第三方代碼已是進行單元測試)

+1

如果你正在與你的項目之外的組件進行交互,你可能會考慮創建傳入數據/響應的模擬 – theaccordance

+0

你能給我寫一個例子,說明在節點上做這件事的常規方法嗎? – MSB

回答

1

Sinon.js是工具,這將幫助你工作的第三方庫改變其功能和您所擁有的自定義功能。這是一個龐大而複雜的話題,我無法用一個評論或者一個觀點來解釋,但是我可以給你一些能夠幫助你理解主要概念的文章。這篇文章幫助我開始使用sinon.js進行測試,希望它對您也有幫助。

1)Official Documentation (它涵蓋了所有科目,但很難從這裏學習,而不是良好的文檔)

2)Article 1 (大文章與ilustrations解釋)

3)Article 2 (從這篇文章的一切都變清晰了)

+1

感謝這是非常翔實的。 – MSB

+0

不客氣;) – kaxi1993