单元测试事件驱动的javascript

前端之家收集整理的这篇文章主要介绍了单元测试事件驱动的javascript前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个带有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测试,这有助于我了解如何解决这个问题.

解决方法

我建议你查看 Jasmine进行测试.它是为了在浏览器环境之外运行测试而构建的,它会存储诸如setTimeout之类的调用,为您提供一个假时钟,您可以利用这个时钟在闲暇时间向前移动,以测试与时间相关的任何事情.

猜你在找的JavaScript相关文章