本文介绍如何在内存中托管整个Web API堆栈,以便使用OWIN进行测试:
http://www.davidwhitney.co.uk/Blog/2015/01/07/testing-an-asp-net-webapi-app-in-memory/
本文显示使用OWIN TestServer对测试控制器进行单元化:
http://www.juliencorioland.net/archives/using-owin-to-test-your-web-api-controllers#.WbDSHdjTWaM
我看到的区别在于使用TestServer.Create
和WebApp.Start<Startup>
关键区别是什么?为什么选择其中一个呢?
单元测试控制器方法与web api调用之间的区别仅仅是内存中的端到端集成测试吗?
答案 0 :(得分:1)
当你这样做的时候
TestServer.Create<Startup>()
- 您只使用启动文件启动内存中实例。 TestServer内部的HttpClient足以在内存中进行集成测试。我们在一个进程内启动所有测试服务器,因此这不是限制(目前有4个测试服务器一起运行)。
当你这样做的时候
WebApp.Start<Startup>(Settings.WebApiUrl)
- 您在自己提供的网址上启动了一个网络应用。还有另一个重载接受选项:网址和设置。
我们仅在特定情况下使用此选项。如: