我正在编写一个带有node.js的服务器端应用程序,并希望包含单元测试.我正在努力的一件事是单元测试EventEmitter和setInterval / setTimout的好方法
我有什么选项来测试异步服务器端javascript?
我知道我可以将另一个监听器附加到作为测试功能的EventEmitter但是我如何确保测试功能运行?单元测试的一部分是确保单元测试的每个部分都运行.
我自己可以使用setTimeout,但这似乎是一个hackish解决方案.
如果它有帮助,这里是一些我试图测试的示例代码.
... function init(param) { ... // run update entities periodically setInterval(this._updateEntities.bind(this,param.containerFull),1000 / param.fps); ... } ... EntityUpdater.prototype = { ... "_updateEntities": function updateEntitiesfunc(fn) { this._tickEmitter.emit( "tick",new dataContainer.DataContainer(this.getEntityCount()) .on( "full",fn.bind(this) ) ); },... } ...
(发射会触发事件)
[编辑]
我在https://github.com/ry/node/tree/master/test/simple开始阅读一些EvevntEmitter测试,这有助于我了解如何解决这个问题.