gpt4 book ai didi

c# - 使用 HttpServer 或 HttpSelfHostServer 对 Web API 进行单元测试

转载 作者:可可西里 更新时间:2023-11-01 08:43:38 24 4
gpt4 key购买 nike

我正在尝试为 Web API 项目做一些单元测试。我要模拟 Web API 托管环境。看来我可以使用内存主机 (HttpServer) 或自主机 (HttpSelfHostServer)。

只是想知道有什么区别,哪种技术有什么用处,这些选项是否有任何限制。

最佳答案

您应该使用内存主机进行端到端测试,然后单独测试您环境的网络连接。

出于多种原因:

  • In memory host,顾名思义,完全在内存中运行,所以速度会快很多

  • 自托管需要以提升的权限运行,因此您的测试需要在“管理员”身份的上下文中执行。这远非所愿。如果你想从即构建脚本或从 PowerShell 执行测试,这尤其麻烦,因为结果,这些进程也必须以提升的权限启动。此外,这必须发生在您测试的任何服务器上。

  • 在自托管中,您最终会测试给定操作系统的网络堆栈,这确实是不应该测试的东西——因为它可能在不同的环境(开发、暂存、QA、生产等)中有所不同。例如 - 给定端口可能不可用。因此,您可能会在不同机器上进行不必要的调试工作,甚至无法运行测试。

  • 最后,使用自托管测试仍然不能保证服务在网络托管时正确运行,反之亦然 - 所以您不妨只在内存中测试

关于c# - 使用 HttpServer 或 HttpSelfHostServer 对 Web API 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14698130/

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