gpt4 book ai didi

node.js - 为什么似乎没有用于 Node 的任何强大的 HTTP 服务器模拟包? (或者有吗?)

转载 作者:行者123 更新时间:2023-11-28 20:22:28 24 4
gpt4 key购买 nike

我是 Node.js 的新手,所以我可能只是不明白,但在搜索了很多,并尝试了几种不同的解决方案之后,我仍然无法找到一种合适的方法来模拟 API 响应使用 Node 进行验收测试。

我有一个与 API 交互的 javascript 应用程序(实际上是用 elm 编写的)(我想这很常见),我想编写一些验收测试...所以我用 selenium 和 mocha 设置 WebdriverIO,写一些测试,当然现在我需要模拟一些 API 响应,以便我可以设置一些理论场景进行测试。

mock-api-server : 看起来很不错,但是无法调整从服务器发回的 header !

mock-http-server : 看起来也很不错,让我调整标题,但没有办法在不关闭整个服务器的情况下重置模拟响应...!?这有问题,因为当浏览器窗口仍然打开时服务器不会关闭,这意味着我必须关闭并重新启动浏览器才能清除模拟!

json-server :模拟某些响应的简单而体面的方法,但它完全依赖于磁盘上的文件来响应。我想要一些我可以在测试运行中配置的东西,而无需在磁盘上读取和写入文件。

我错过了什么吗?这不是人们在 Node 世界中进行验收测试的方式吗?每个人都只为他们的整个测试套件使用一组固定的模拟数据吗?这对我来说听起来很疯狂......特别是因为看起来基于具有所有必要功能的快速服务器编写一个好的服务器似乎并不难......它存在吗?

必要的功能:

  1. 可以通过 javascript 配置和启动服务器
  2. 可以动态配置响应(包括 header )
  3. 还可以轻松地即时重置响应,而无需关闭服务器。

最佳答案

我也遇到了这个问题,所以我建了一个:https://github.com/pimterry/mockttp

就你正在寻找的东西而言,Mockttp:

  • 允许您在测试运行期间从 JS 动态启动和重新配置服务器,没有静态文件。
  • 让您调整标题
  • 让您重置正在运行的服务器(尽管我建议关闭并重新启动 - 使用 Mockttp 只需几毫秒,清晰且易于自动化,并为您提供一些很好的保证)

最重要的是,它:

  • 可以使用相同的代码从 Node 和浏览器进行配置,因此您可以进行通用测试
  • 可以并行处理正在运行的测试以加快测试速度
  • 可以伪造 HTTPS 服务器,自动自签名证书
  • 可以模拟为拦截代理
  • 在出现问题时提供一系列很好的调试支持(例如,不匹配的请求返回时带有对当前配置的可读解释,以及使请求成功的示例代码)

只是快速评论其他建议进行中测试的帖子:我真的不会。部分是因为一大堆限制(你被绑定(bind)到一个特定的环境,甚至可能是特定的 Node 版本,你必须模拟整个过程,所以没有并行测试,你不能模拟子进程),但主要是因为它是没有真正的代表性。对于非常非常小的速度成本,您可以使用真实的 HTTP 进行测试,并且知道您的请求和响应也肯定会在现实中工作。

关于node.js - 为什么似乎没有用于 Node 的任何强大的 HTTP 服务器模拟包? (或者有吗?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42568920/

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