Нужна помощь в попытке высмеять .NET WebClient или эквивалент

У меня есть код, который загружает некоторые RSS-каналы.

Я использовал библиотеки WebClient или Argotic.Syndication.RssFeed.

Но это не макет: (

Я, разумеется, не хочу попасть в настоящий канал RSS каждый раз, когда я запускаю unit test.

Есть ли у кого-нибудь предложения, что я могу сделать?

Нужно ли мне создавать злую оболочку? Если да.. предложения по этому поводу?

Ответы

Ответ 1

Я собираюсь создать оболочку для каждой внешней зависимости (если она практична). Таким образом, каждое взаимодействие с файловой системой /webservice/database должно выполняться только через интерфейс, что приведет к более тестируемому коду.

Другим решением, конечно, является (как всегда) Typemock Isolator.

Ответ 2

Есть ли у кого-нибудь предложения, что я могу сделать?

Обозначает фактический HTTP-вызов за интерфейсом. Затем напишите импликацию этого интерфейса с помощью WebClient. Теперь ваш основной класс воспринимает этот интерфейс как зависимость. Теперь вы можете издеваться над этим интерфейсом в unit test и настроить свою среду инъекций зависимостей, внедряя правильную реализацию во время выполнения.