我有一項服務使用Microsoft.Net.Http
來檢索一些Json
數據。大!如何在.NET測試中傳遞模擬的HttpClient?
當然,我不希望我的單元測試碰到實際的服務器(否則,這是一個集成測試)。
這裏是我的服務構造函數(它使用依賴注入...)
public Foo(string name, HttpClient httpClient = null)
{
...
}
我不知道我怎麼可以...說.. Moq
或FakeItEasy
嘲笑這一點。
我想確保當我的服務電話GetAsync
或PostAsync
..然後我可以僞造這些電話。
任何建議我怎麼能做到這一點?
我-hoping-我並不需要使自己的包裝..因爲那的廢話:(微軟無法做出這種監督,對不對?
(是的,它很容易做包裝..我做過他們之前......但它的重點!)
_「我是 - 希望 - 我不需要製作我自己的包裝器」_ - 您使用了多少個「HttpClient」的方法和屬性?通常爲這些創建一個接口是有用的,然後你可以模擬它。 – CodeCaster
(就像我在OP中提到的那樣)同意 - 這很容易和簡單......但我會盡管我不應該?這是應該核心的東西..對嗎?這是我唯一的選擇嗎? –
據我所知,如果他們是虛擬的,你可以將這些呼叫存根。因爲他們不是,我會假設你需要編寫一個包裝(這是更簡潔的方式)。 – ElGauchooo