Мой сценарий - у меня есть конкретный класс (RestSupport) за интерфейсом (IRestSupport), который имеет два основных метода: CreateRequest и GetResponse. Этот класс предназначен для того, чтобы я мог общаться с веб-терминалами через JSON. Этот класс вызывается другим классом, который имеет бизнес-логику более высокого уровня, чтобы предоставить точный JSON, который необходимо отправить.Модульное тестирование WebRequest.CreateHttp в библиотеке
Мне нужно уметь тестировать эти два метода, чтобы они не вызывали конечные точки во время тестирования. CreateRequest полагается на HttpWebRequest, потому что мне нужно добавить информацию в коллекцию Headers. Существует больше кода, чем это, но ниже приведен пример.
var request = WebRequest.Create(url) as HttpWebRequest;
request.Headers.Add("Authorization", AuthorizationHeader);
Я вижу много примеров в Интернете использования IWebRequestCreate таким образом, что вы можете контролировать создание запроса. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу заставить это работать должным образом при использовании HttpWebRequest. Метод Create IWebRequestCreate ожидает, что вы вернете объект WebRequest. Недостатком веб-примеров является то, что они не используют HttpWebRequest. Я не могу получить класс из HttpWebRequest, который действительно является основной проблемой.
У меня нет доступа к поддетелям, но вы можете использовать Moq. Моя цель - не изменять код библиотеки, если этого можно избежать.