有没有一种方法可以在node-mdns中将浏览器最多运行一段时间

时间:2018-07-23 14:37:28

标签: node.js cucumberjs mdns

当前node-mdns提供了一种通过设置浏览器对象并调用browser.start()来浏览广告mDNS服务的方法。对于可能需要在应用程序的整个生命周期中监听服务的用例,这可能会很好地发挥作用。

但是,对于一个测试用例,像browser.start(1000, [callback])这样的调用实际上会寻找1秒钟的广告服务,然后停止浏览并调用提供的可选回调,这将非常有用。

在我的测试场景中,我启动了一个应该为服务做广告的应用程序。然后在serviceUp上监听localhost事件。如果找到服务,我将执行browser.stop()assert(true)并通过测试。但是,如果找不到该服务,则测试用例仍会通过并且测试执行会挂起 ,因为显然,我没有在此代码路径上调用browser.stop()

我希望有一种方法browser.start(1000, callback),因此在callback中,如果计时器到期,我可以停止浏览器和assert(false)

我曾考虑过在浏览器和计时器之间进行Promise.race的操作,但是browser.start()似乎没有返回任何内容,因此无法实现。

我能想到的唯一的其他解决方案(除了切换到node-dns-sd之类的承诺模块之外)是setInterval / clearInterval的组合,但看起来很费劲一个简单的场景。

我希望其他人也可能遇到类似的问题,并且可能已经有了解决方案。

0 个答案:

没有答案