Как я могу издеваться над HttpWebResponse со свойством CharacterSet для модульного теста?В моем коде я проверяю HttpWebResponse.CharacterSet, как показано ниже.Я мог бы посмеяться над HttpWebResponse, но получить исключение нулевой ссылки при получении свойства "CharacterSet".Обратите внимание, что я не могу установить «CharacterSet» в макете, так как это свойство только для чтения и не виртуальное.Я использую .Net 4.6.1
public string ReadResponse(HttpWebResponse response)
{
var encoding = (response.CharacterSet == null || response.CharacterSet == "") ? Encoding.UTF8 : Encoding.GetEncoding(response.CharacterSet);
using (var stream = response.GetResponseStream())
{
var reader = new StreamReader(stream, encoding);
var responseString = reader.ReadToEnd();
return responseString;
}
}
И макет, который я написал для HttpWebReponse,
public static HttpWebResponse CreateRequestWithResponse(string responseContent)
{
var response = new Mock<HttpWebResponse>(MockBehavior.Loose);
var responseStream = new MemoryStream(Encoding.UTF8.GetBytes(responseContent));
response.Setup(c => c.StatusCode).Returns(HttpStatusCode.OK);
response.Setup(c => c.ContentType).Returns("text/xml;charset=\"utf-8\"");
response.Setup(c => c.GetResponseStream()).Returns(responseStream);
var request = new Mock<HttpWebRequest>();
request.Setup(a => a.ContentType).Returns("text/xml;charset=\"utf-8\"");
request.Setup(s => s.GetResponse()).Returns(response.Object);
return response.Object;
}
Это ошибка, которую я получаю при получении "CharacterSet",