【问题标题】:Integration testing between web application and WebAPIWeb 应用程序和 WebAPI 之间的集成测试
【发布时间】:2019-10-21 12:11:28
【问题描述】:

我正在使用 WebApplicationFactory<TStartup> 对 .NET Core 3.0 Web 应用程序进行集成测试。
当它只需要测试一个 Web 应用程序时,它就可以工作。

但是如果 Web 应用程序需要向 WebAPI 应用程序发送请求怎么办。我需要以某种方式实例化WebApplicationFactory<Web.Startup>WebApplicationFactory<Api.Startup>

我尝试了不同的选择,但没有成功。 任何有类似任务经验的人都可以为我指出正确的方法吗?

附:在 Web 应用程序内部注入了内部 HttpClient,在控制器内部用于向 API 发送请求:

services.AddHttpClient<IInternalApiClient, InternalApiClient>();

【问题讨论】:

    标签: c# asp.net-core integration-testing asp.net-core-webapi


    【解决方案1】:

    你不会的。您所说的将是“系统测试”,即测试整个系统。集成测试是关于确保单个应用程序的子组件一起运行。因此,您将模拟调用 API 的服务类:InternalApiClient。在您的测试服务器的网络主机设置中,您将创建一个模拟 IInternalApiClient 并存根适当的方法以返回虚拟数据,而不是实际调用 API。

    【讨论】:

    • 感谢您的回复。请补充问题:如果 Web 应用程序依赖于 API,您建议如何编写 Selenium 测试?
    • 哦,好吧,也许还有模拟 api 响应
    • Selenium 用于 UI 测试,因此您需要一个特定的环境,因为您需要完整的系统。这些数据可能会模拟测试数据,但您仍然需要真正的部署。
    猜你喜欢
    • 2017-06-01
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 2013-04-12
    • 2019-06-26
    • 2017-04-10
    相关资源
    最近更新 更多