这是关于测试的一般问题,但我将在Node.js的上下文中构建它。我并不关心特定的技术,但它可能很重要。
在我的应用程序中,当我的Web服务器收到请求时,我有几个模块被调用。对于其中一些模块,我在调用它们之前关闭了请求。
测试这些模块正在做他们应该做的事情的好方法是什么?
RSpec的建议here是模拟这些模块正在进行的工作,并确保调用适当的方法。这对我来说很有意义,但是在Node.js中,由于我的模块不是全局的,我不认为我不能在不改变程序体系结构的情况下模拟函数,以便每个实例都接收它需要的对象实例 1 < / SUP>
[1]这是一个众所周知的编程范例,但我现在不记得它的名字了。
我看到的另一个选项是使用setTimeout
,并在这些模块完成工作时尽量猜测。
这些似乎都不理想。
我错过了什么吗?后台进程未经过测试吗?
答案 0 :(得分:0)
由于您正在谈论这些背景组件的集成测试,因此可以想到一些策略。
next
回调函数。它们最终会像Express的中间件层或async
each
函数的工作方式一样运行,但是在每个模块中,您传递一些在该模块的任务完成时调用的回调。一旦所有模块报告,您就可以检查程序的状态。Mocha
有点这样做,因为如果给定的测试超过了可定义的阈值,那么它就是失败。我不喜欢这种方式,因为如果你添加更多测试,他们都必须等待相同的时间。