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

时间:2018-10-15 09:14:58

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

我正在为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控制器?

1 个答案:

答案 0 :(得分:0)

我正在使用一种较旧的方法(TestHost)

因为我的启动类位于另一个程序集(内部)中,并且已将IWebHostBuilder暴露给我的API项目。 因此,在那种情况下,我无法使用带有WebApplicationFactory类的Startup.cs。并且由于有了IWebHostBuilder引用,我可以直接使用TestServer(IWebHostBuilder)创建测试客户端。