Нужна помощь в попытке высмеять .NET WebClient или эквивалент
У меня есть код, который загружает некоторые RSS-каналы.
Я использовал библиотеки WebClient
или Argotic.Syndication.RssFeed
.
Но это не макет: (
Я, разумеется, не хочу попасть в настоящий канал RSS каждый раз, когда я запускаю unit test.
Есть ли у кого-нибудь предложения, что я могу сделать?
Нужно ли мне создавать злую оболочку? Если да.. предложения по этому поводу?
Ответы
Ответ 1
Я собираюсь создать оболочку для каждой внешней зависимости (если она практична). Таким образом, каждое взаимодействие с файловой системой /webservice/database должно выполняться только через интерфейс, что приведет к более тестируемому коду.
Другим решением, конечно, является (как всегда) Typemock Isolator.
Ответ 2
Есть ли у кого-нибудь предложения, что я могу сделать?
Обозначает фактический HTTP-вызов за интерфейсом. Затем напишите импликацию этого интерфейса с помощью WebClient. Теперь ваш основной класс воспринимает этот интерфейс как зависимость. Теперь вы можете издеваться над этим интерфейсом в unit test и настроить свою среду инъекций зависимостей, внедряя правильную реализацию во время выполнения.