gpt4 book ai didi

javascript - 单元测试事件驱动的javascript

转载 作者:数据小太阳 更新时间:2023-10-29 04:43:08 25 4
gpt4 key购买 nike

我正在使用 node.js 编写服务器端应用程序,并希望包括单元测试。我正在努力解决的一件事是对 EventEmittersetInterval/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)
)
);
},
...
}
...

(emit会触发一个事件)

[编辑]

我开始在 https://github.com/ry/node/tree/master/test/simple 阅读一些 EvevntEmitter 测试它帮助我了解如何解决这个问题。

最佳答案

我建议您查看 Jasmine为您的测试。它是为在浏览器环境之外运行测试而构建的,它对诸如 setTimeout 之类的调用进行 stub ,为您提供一个假时钟,您可以在闲暇时向前移动时间以测试任何与时间相关的内容。

关于javascript - 单元测试事件驱动的javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4413221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com