2017-09-07 61 views
2

本文介紹如何承載在內存中的整個web API堆棧使用OWIN測試:爲什麼使用OWIN TestServer?

www.davidwhitney.co.uk/Blog/2015/01/07/testing-an-asp-net-webapi- APP-內存/

儘管本文示出了使用OWIN TESTSERVER單元測試控制器:

http://www.juliencorioland.net/archives/using-owin-to-test-your-web-api-controllers#.WbDSHdjTWaM

我看到的區別是使用TestServer.Create和WebApp.Start

之間

關鍵的區別是什麼?爲什麼你會選擇另一個?

它僅僅是web api調用的單元測試控制器方法與內存中端到端集成測試之間的差異嗎?

+0

我想設計一個微服務解決方案,並想知道同樣的問題...你同時發現的信息嗎? – ironic

+0

不,我沒有,我很害怕。 –

回答

0

當你做 TestServer.Create<Startup>() - 你只需使用啓動文件啓動內存中的實例。 TestServer內部的HttpClient足夠用於內存集成測試。我們在一個進程內啓動所有的測試服務器,所以這不是一個限制(目前有4個測試服務器在一起運行)。

當你做 WebApp.Start<Startup>(Settings.WebApiUrl) - 你在你提供的網址上啓動一個網絡應用程序。還有另一個接受選項的重載:urls和settings。 我們僅在特定情況下使用此選項。如:

  1. 託管的SignalR客戶網址 - 它不會沒有URL, 它可以運行基於
  2. 合同測試工作 - 合同上驗證提供商 側。這也只能通過啓動WebApp來完成。 (我們使用 Pact.Net)
相關問題