0
我有一個要求導出數據爲xml通過HTTP POST請求。它是由如下代碼完成的,現在問題是我想用模擬http請求創建單元測試。有人可以幫我解決這個問題嗎?單元測試一個方法與HTTP發佈請求嘲諷HttpWebRequest
private string WriteBytesToHttp(ExportConfiguration exportConfiguration, byte[] bytes)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(exportConfiguration.Endpoint.Address);
Encoding encoding = exportConfiguration.Format.EncodingCodePage.ToEncoding();
var contentType = string.IsNullOrEmpty(exportConfiguration.Format.ContentType)
? "text/plain"
: exportConfiguration.Format.ContentType;
request.ContentType = contentType;
//request.ContentType = string.Format("{0}; charset={1}", contentType, encoding.HeaderName);
request.ContentLength = bytes.Length;
request.Method = "POST";
if (!(string.IsNullOrEmpty(exportConfiguration.Endpoint.Username) ||
string.IsNullOrEmpty(exportConfiguration.Endpoint.Password)))
{
var creditionStr = string.Format("{0}:{1}", exportConfiguration.Endpoint.Username,
exportConfiguration.Endpoint.Password);
request.Headers.Add("Authorization",
"Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(creditionStr)));
}
Stream newStream = request.GetRequestStream();
newStream.Write(bytes, 0, bytes.Length);
newStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
var streamReader = string.IsNullOrEmpty(response.CharacterSet)
? new StreamReader(responseStream)
: new StreamReader(responseStream, Encoding.GetEncoding(response.CharacterSet));
string responseStr = streamReader.ReadToEnd();
return String.IsNullOrEmpty(responseStr) ? response.StatusCode.ToString() : responseStr;
}
什麼是* *正是你的問題?任何錯誤? – RandomStranger
需要通過嘲笑HTTP服務調用 –
創建此測試方法的單元測試我認爲你的問題的答案在這裏 http://stackoverflow.com/questions/9789944/how-can-i-test-a-custom-delegatinghandler- in-the-asp-net-mvc-4-web-api – syler