我正在用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