国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net core 使用 TestServer 來做集成測試的方法

asp.net core 使用 TestServer 來做集成測試的方法

2021-12-06 16:17Love it or leave it ASP.NET教程

這篇文章主要介紹了asp.net core 使用 TestServer 來做集成測試,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

intro

之前我的項目里的集成測試是隨機一個端口,每次都真實的啟動一個 webserver,之前也有看到過微軟文檔上 testserver 的介紹,當時沒仔細看過以為差不多就沒用,一直是啟動了一個真正的 webserver 去跑集成測試的,上次分享 xunit.dependencyinjection 改造測試項目的時候,寫的爛代碼被大師看到了之后, 大師建議用 testserver 來做集成測試,使用 testserver 不會真正的占用端口號,不會出現權限問題,于是扒了扒 testserver 的源碼,并用 testserver 改進了集成測試項目,感謝大師[獻花鮮花]~~

sample

之前的集成測試監聽了一個端口號,使用了一個真實的 webserver,下面改成使用 testserver

testserver 現在是在 microsoft.aspnetcore.testhost 這個 nuget 包中,引用這個包就可以使用了

在服務注冊的時候調用 usetestserver 這一擴展方法就可以注入 testserver 了,集成測試一般會用 httpclient 來請求服務器端的 api 地址或頁面,testserver 提供了一個方便的 createclient 的方法可以很方便的創建一個用來請求 testserverhttpclient,微軟也提供了一些比較方便的擴展方法,可以使用 ihostgettestclient 擴展方法來獲取 httpclient

改成使用 testserver 很簡單,引用 nuget 包 microsoft.aspnetcore.testhost,變更對比如下:

asp.net core 使用 TestServer 來做集成測試的方法

源碼概覽

testserver 在啟動的時候并沒有監聽端口,可以參考源碼 iserverstart

asp.net core 使用 TestServer 來做集成測試的方法

testserver 通過 createclient 方法來創建調用 testserver 接口的 httpclient

asp.net core 使用 TestServer 來做集成測試的方法

通過上面的代碼可以看的出來核心代碼是在 clienthandler 中定義的,源碼有點多,詳細可以直接看源碼 https://github.com/dotnet/aspnetcore/blob/v5.0.0/src/hosting/testhost/src/clienthandler.cs

asp.net core 使用 TestServer 來做集成測試的方法

clienthandler 重寫了 httpclienthandler 的 sendasync 方法,使得請求直接攔截掉,不會真正的發生 http 請求,實際的請求過程首先將 http 請求的信息轉換成 httprquestfeature 然后直接交給 testserver 處理,其實也就是直接交給 asp.net core 的請求管道去處理,請求處理結束之后,獲取 httpcontext 響應,獲取 httpresponsefeature 然后轉換成 httpclient 需要的 httpresponsemessage.

more

testserver 不僅僅可以支持 http 請求的處理,還支持 websocket 的處理,websocket 的集成測試也可以使用 testserver 來處理。

你如果還是比較懷疑是否真的沒有 http 請求,可以用 fildder 之類的 http 抓包工具監控在跑測試的期間是否真的有 http 請求,如果是真正的 webserver 會有 http 請求,testserver 不會有 http 請求。

https://docs.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-5.0
https://github.com/dotnet/aspnetcore/tree/v5.0.0/src/Hosting/TestHost/src
https://github.com/dotnet/aspnetcore/tree/v5.0.0/src/Hosting/TestHost/src/TestServer.cs
https://github.com/dotnet/aspnetcore/blob/v5.0.0/src/Hosting/TestHost/src/ClientHandler.cs#L58
https://github.com/OpenReservation/ReservationServer/blob/3.1.0/OpenReservation.API.Test/Startup.cs#L26
https://github.com/OpenReservation/ReservationServer/commit/e683065bf76e3c51688238c382b2c1f0c8028e7d

到此這篇關于asp.net core 使用 testserver 來做集成測試的文章就介紹到這了,更多相關asp.net core 集成測試內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/weihanli/p/14007959.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 在线成人一区 | 国产在线一区二区三区 | 成人网av | 一级录像免费录像在线观看 | 日韩中文字幕在线视频 | 特黄特色大片免费视频观看 | 亚洲综合色网 | 激情综合色综合久久综合 | 搡女人真爽免费午夜网站 | 亚洲国产精品福利 | 看亚洲a级一级毛片 | 久久久美女 | 激情综合五月 | 中文字幕国产一区 | 成人3d动漫一区二区三区91 | 中文字幕一区二区在线观看 | 日本三级精品视频 | 日韩av一级在线观看 | 在线视频亚洲 | 欧美精品一区二区三区中文字幕 | 日韩欧美在线一区二区 | 免费成人激情视频 | 久久精品影片 | 国产成年人网站 | 日韩精品一区二区三区在线观看 | 99精品视频一区二区三区 | 成人午夜视频在线播放 | 午夜寂寞少妇aaa片毛片 | 看亚洲a级一级毛片 | 九九九色| 最新av在线| 久久九九免费 | 亚洲一区视频网站 | 欧美成人h版在线观看 | 欧美午夜精品久久久久免费视 | 激情综合五月网 | 狠狠操狠狠干 | 手机黄网www8xcn | 99综合 | 成人免毛片 | 五月婷婷在线观看视频 |