如何在nodejs中测试第三方代码?

问题描述:

我目前正在编写一个在私人环境中使用的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

Sinon.js是工具,这将帮助你工作的第三方库改变其功能和您所拥有的自定义功能。这是一个庞大而复杂的话题,我无法用一个评论或者一个观点来解释,但是我可以给你一些能够帮助你理解主要概念的文章。这篇文章帮助我开始使用sinon.js进行测试,希望它对您也有帮助。

1)Official Documentation (它涵盖了所有科目,但很难从这里学习,而不是良好的文档)

2)Article 1 (大文章与ilustrations解释)

3)Article 2 (从这篇文章的一切都变清晰了)

+1

感谢这是非常翔实的。 – MSB

+0

不客气;) – kaxi1993