我正在編寫一個單元測試方法,該方法在我測試的條件下練習的代碼應該會引發一個帶有特定響應消息的HttpResponseException。爲什麼HttpResponseException只允許其消息被讀取爲異步?
我的測試方法代碼中的相關部分看起來是這樣的:
try
{
MyClassBeingTested.MyWebServiceMethodBeingTested(myParameters);
}
catch (HttpResponseException ex)
{
string errorMessage = await ex.Response.Content.ReadAsStringAsync();
Assert.IsTrue(errorMessage.Contains("My expected error message string"));
return;
}
Assert.Fail("Expected HttpResponseException didn't get thrown");
此代碼的工作,並測試通過。
但是,我想更好地理解爲什麼我的代碼讀取錯誤消息需要以這種方式構建。 HttpResponseException類僅提供對其消息的異步訪問。因此,我需要通過ReadAsStringAsync()
來獲取消息,而不是通過做類似ex.Response.Content.Message
的事情來同步獲取消息。
我覺得我可能會錯過爲什麼HttpResponseException類的工作方式。 HttpResponseException不提供對其響應消息的同步訪問的原因是什麼?
「HTTP流的內容總是被異步讀取」 - 這是我的關鍵點。謝謝! :-) –