本文介绍了如何在内存中托管整个Web API堆栈以使用OWIN进行测试:
http://www.davidwhitney.co.uk/Blog/2015/01/07/testing-an-asp-net-webapi-app-in-memory/
而本文显示了如何使用OWIN TestServer对测试 Controller 进行单元化:
https://blog.jcorioland.io/archives/2014/04/01/using-owin-to-test-your-web-api-controllers.html
我看到的区别是TestServer.Create
和WebApp.Start<Startup>
的使用之间
关键区别是什么?为什么选择一个?
这仅仅是Web API调用的单元测试 Controller 方法与内存中的端到端集成测试之间的区别吗?
最佳答案
当你做TestServer.Create<Startup>()
-使用启动文件仅启动内存中的实例。 TestServer内部的HttpClient足以进行内存中的集成测试。我们将在一个进程内启动所有测试服务器,因此这不是一个限制(当前有4个测试服务器同时运行)。
当你做WebApp.Start<Startup>(Settings.WebApiUrl)
-您在提供的URL上启动Web应用程序。还有另一个接受选项的重载:URL和设置。
我们仅在特定情况下使用此选项。如:
它可以在哪里运行
边。这也只能通过启动的WebApp来完成。 (是
使用Pact.Net)
关于testing - 为什么要使用OWIN TestServer?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46088291/