我正在用node.js写一个服务器端应用程序,并希望包含单元测试。我正在努力的一件事是单元测试的好方法EventEmitter
和setInterval/setTimout
单元测试事件驱动javascript
我有什么选择单元测试异步服务器端javascript?
我知道我可以附加其他监听到被测试的功能,但随后我怎么garantuee的测试功能,不断运行EventEmitter?部分单元测试是为了确保单元测试的每个部分都运行。
我可以使用的setTimeout自己,但似乎像一个hackish的解决方案。
如果它帮助这里是我想要测试一些代码exampler。
...
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测试的,它可以帮助我了解如何去了解这一点。
你看过这篇博文吗? http://debuggable.com/posts/unit-testing-with-node-js:4b647d40-34e4-435a-a880-3b04cbdd56cb – Tmdean 2010-12-10 21:25:08
是的,我阅读了博客,这很有帮助,但只涵盖了几点。我只注意到测试不会有效地退出,直到循环结束。这仍然让一次setTimeout和一次事件变得容易。 – Raynos 2010-12-10 21:45:19
我现在才注意到退出块是关于测试而不是服务器。它是在所有异步操作完成后运行代码块的一种方式 – Raynos 2010-12-10 21:56:20