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

2024-01-08

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

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


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

出于多种原因:

  • 在内存主机中,顾名思义,完全在内存中运行,因此速度会快得多

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 HttpServer 或 HttpSelfHostServer 对 Web API 进行单元测试 的相关文章

随机推荐