Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了单元测试 – 如何以编程方式关闭ExpressJS的实例进行测试?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_673_2@
我试图找出如何关闭Express的实例。基本上,我想要.listen(端口)调用的反向 – 我如何获得一个Express服务器停止侦听,释放端口,并干净地关闭

我知道这似乎可能是一个奇怪的查询,所以这里是上下文;也许有另一种方法来处理这个,我在想它的错误的方式。我试图为我的socket.io/nodejs应用程序设置一个测试框架。它是一个页面的应用程序,所以在我的测试脚本(我使用Mocha,但这并不重要)我想能够启动服务器,运行测试,然后关闭服务器。我可以通过假设服务器在测试开始之前打开或通过使用其中一个测试启动服务器,并让每个后续测试假设它是,但是这真的很麻烦。我更喜欢让每个测试文件启动一个具有适当设置的服务器实例,然后在测试结束时关闭该实例。这意味着运行测试没有奇怪的依赖,一切都干净。这也意味着我可以做启动/关机测试。

那么,任何建议如何做到这一点?我想过手动触发例外来把它,但这似乎很乱。我已经挖通过Express docs和源,但似乎找不到任何关闭服务器的方法。在socket.io中也可能有一些东西,但是由于套接字服务器只是连接到Express服务器,我认为这需要发生在express层。

@H_673_2@

解决方法

Things have changed,因为express服务器不再从节点http服务器继承。幸运的是,app.listen返回服务器实例。

var server = app.listen(3000);

// listen for an event
var handler = function() {
  server.close();
};
@H_673_2@ @H_673_2@
@H_673_2@
@H_673_2@

大佬总结

以上是大佬教程为你收集整理的单元测试 – 如何以编程方式关闭ExpressJS的实例进行测试?全部内容,希望文章能够帮你解决单元测试 – 如何以编程方式关闭ExpressJS的实例进行测试?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。