.NET 6 HttpClient單元測試範例

目的

面試的時候被問到要如何做包含外部api的單元測試問題,稍微查一下其實很簡單,怎麼當下答不出來呢? 主要有兩種方式,一種為.net core 2.1以後有提供IHttpClientFactory的介面可以使用。

建立新專案

選擇ASP.NET Core Web API專案範本,並執行下一步 步驟一

設定新的專案

命名你的專案名稱,並選擇專案要存放的位置。 步驟二

其他資訊

直接進行下一步 步驟三

建立資料夾

步驟四

編輯Program.cs檔案

註冊AddHttpClient。

步驟五

新增一個類別檔

  • 加入前 步驟6-1

  • 加入後 步驟6-2

建構子注入

將註冊的httpclient透過建構子注入

  • 加入前 步驟7-1

  • 加入後 步驟7-2

新增方法

新增一個會去發外部請求的方法,模擬當有包含第三方api時如何測試

步驟8

新增測試專案

對方案點選右鍵>加入>新增專案

步驟9

設定新的專案

替測試專案命名,建議命名規則以.Tests做結尾 步驟10

其他資訊

專案架構需要與要測試的專案相同 步驟11

加入參考

將要測試的專案加入測試專案

對CallAPIServices.Tests點選右鍵>加入>專案參考

步驟12

NuGet加入套件

透過NuGet安裝Moq套件至測試專案 步驟13

新增對應資料夾與測試檔案

新增檔案,檔名需要與要測試的檔案一致,並加上Tests 步驟14

新增程式碼

在新增的檔案內新增一個方法並寫入程式碼,一開始會看到許多紅色波浪,是因為沒有加入參考

  • 加入前 步驟15-1

步驟15-2
  • 加入後 步驟15-3

步驟15-4

執行測試

點右鍵執行測試,最後結果會如左下角顯示成功 步驟16

相關參考

單元測試好的做法 為什麼要使用IHttpClientFactory moq套件介紹 單元測試介紹 Fact跟Theory差別 存取修飾詞

範例檔

GitHub

Last updated