单元测试通常依赖于mock的组件, 而集成测试则使用可运行的组件.
注意: 如果一个行为可以通过单元测试或集成测试来测试的话, 那么应该使用单元测试....如何进行集成测试
如果我想测试一个API Controller的Action, 我可能需要把这个项目运行起来, 等它跑起来, 发送请求并检验结果. 但这样做的话需要很多的配置工作, 并且很麻烦....TestServer不监听网络请求, 它使用HttpClient在内存里发送请求.
仔细看一下集成测试时使用TestServer的流图:
?...所以这就引出了一个问题, Startup里面的配置在开发时 和 测试时 以及 生产运行时 可能是不太一样的.
我的Startup里面已经有很多代码了, 如果再进行环境判断, 那就会更乱了....来构建TestServer, 使用WebApplicationFactory的好处是可以灵活的进行自定义配置.