【问题标题】:ASPNetCore Web API integration tests using Test Host or WebApplicationFactory使用测试主机或 WebApplicationFactory 的 ASPNetCore Web API 集成测试
【发布时间】:2019-03-19 16:23:05
【问题描述】:

我正在为 ASPNetCore Web API 项目编写集成测试。在阅读它时,我遇到了两个术语,第一个是

Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory

第二个是

Microsoft.AspNetCore.TestHost

参考资料:

  1. https://docs.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-2.1

  2. https://koukia.ca/integration-testing-in-asp-net-core-2-0-51d14ede3968

我有点困惑,为什么以及应该使用哪种设置来测试 Web API 控制器?

【问题讨论】:

  • 我也有同样的问题,你解决了吗?
  • @kvuong 是的,我采用的是旧方法 (TestHost),因为我的启动类在另一个程序集(内部)中,并且我一直将 IWebHostBuilder 暴露给我的 API 项目.因此,在这种情况下,我无法使用采用 Startup.cs 类WebApplicationFactory。由于我有 IWebHostBuilder 参考,我可以直接使用 TestServer(IWebHostBuilder) 来创建测试客户端。希望对您有所帮助。
  • 我相信,前者是后者的替代方法。这是根据 MightySoft 的最新博客。

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


【解决方案1】:

我采用的是旧方法 (TestHost)

因为我在另一个程序集(内部)中有我的启动类,并且我一直将 IWebHostBuilder 暴露给我的 API 项目。 所以,在那种情况下,我不能使用 WebApplicationFactory ,它需要 Startup.cs 类。由于我有一个IWebHostBuilder 参考,我可以直接使用TestServer(IWebHostBuilder) 来创建测试客户端。

【讨论】:

    猜你喜欢
    • 2019-07-23
    • 2023-03-18
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 2017-03-03
    相关资源
    最近更新 更多