Need some advice for trying to mock a .NET WebClient or equivalent

Pure.Krome picture Pure.Krome · Jun 19, 2012 · Viewed 9.2k times · Source

I've got some code which downloads some RSS feeds.

I've been using WebClient or Argotic.Syndication.RssFeed libraries.

But these aren't mockable :(

I definately do not want to hit the real RSS feed every time I run the unit test.

Does anyone have any suggestions to what I can do?

Do I need to create an evil wrapper? If so .. suggestions on this?

Answer

Darin Dimitrov picture Darin Dimitrov · Jun 19, 2012

Does anyone have any suggestions to what I can do?

Abstract the actual HTTP call behind an interface. Then write an implmentation of this interface using WebClient. Now have your main class take this interface as dependency. You could now mock this interface in the unit test and configure your dependency injection framework inject the correct implementation at runtime.