c# - 使用测试主机或 WebApplicationFactory 的 ASPNetCore Web API 集成测试

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

我正在为 ASPNetCore Web API 项目编写集成测试。在阅读它时,我遇到了两个术语,首先是
Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory
其次是
Microsoft.AspNetCore.TestHost
引用:

  • https://docs.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-2.1
  • https://koukia.ca/integration-testing-in-asp-net-core-2-0-51d14ede3968

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

    最佳答案

    我正在遵循较旧的方法 (TestHost)
    因为我在另一个程序集(内部)中有我的启动类并且我一直在暴露 IWebHostBuilder到我的 API 项目。
    所以,在那种情况下,我无法使用 WebApplicationFactory这需要 Startup.cs类(class)。因为我有一个 IWebHostBuilder引用我可以直接使用 TestServer(IWebHostBuilder)创建测试客户端。

    关于c# - 使用测试主机或 WebApplicationFactory 的 ASPNetCore Web API 集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52813368/

    相关文章:

    python - 使用 APIRequestFactory 测试基于 token 的身份验证的正确方法是什么?

    c# - WinForms:可变数量的动态 TextBox 控件

    c# - C#标签的好处和模型用法是什么

    c# - NodaTime Invalid DateTime.Kind for Instant.FromDateTimeUtc

    asp.net-core - 在 ASP.NET MVC6 中使用 TagHelpers 与 ViewComponents

    c# - ASP.NET Core Razor Pages v6 中@page 的静态定义路由

    asp.net-core - 在 .net Core 中像表单例份验证一样加密密码

    c# - 如何订购属于一个测试集合但分布在多个测试类中的 xUnit 测试?

    c# - 实现 IDispatch::Invoke 以供 WebBrowser 控件调用

    Grails 集成测试在 Jenkins 上运行