ASP.NET Core应用里, 我们在Program.cs里创建WebHostBuilder, 并配置Kestrel Web服务器, 使用Startup类进行应用配置, 注册服务和中间件等....最终在WebHostBuilder上使用Build()来创建WebHost的实例, 它可以用来在特定的URL和端口上运行并监听请求....图中:
当应用/被测试系统在生产环境运行的时候, 它使用Kestrel服务器, 监听HTTP请求, 并把它转化为HttpContext, 然后再传进ASP.NET Core的管道里....由于我这个项目可以看作是真实项目, 所以第一次运行该测试的时候, 测试是Fail的. 因为Startup里面有很多配置并不满足测试要求....该Controller需要很多依赖项, 其中两个还需要使用数据库.
通常情况下集成测试里使用的数据库和生产环境中使用的数据库不同, 在测试环境我更倾向于使用内存类数据库.