需要一些建议来尝试模拟.NET WebClient或等效的

时间:2012-06-19 06:31:37

标签: c# .net mocking moq webclient

我有一些代码可以下载一些RSS源。

我一直在使用WebClientArgotic.Syndication.RssFeed个库。

但这些都不可模仿:(

我绝对不希望每次运行单元测试时都能点击真正的RSS提要。

有没有人对我能做什么有任何建议?

我需要创建一个邪恶的包装器吗?如果是这样......对此有何建议?

2 个答案:

答案 0 :(得分:21)

  

有没有人对我能做什么有任何建议?

抽象接口后面的实际HTTP调用。然后使用WebClient编写此接口的实现。现在让您的主类将此接口作为依赖项。您现在可以在单元测试中模拟此接口,并配置您的依赖注入框架在运行时注入正确的实现。

答案 1 :(得分:17)

我会为每个外部依赖创建一个包装器(如果它是实用的)。因此,与文件系统/ webservice /数据库的每次交互都应该只通过一个接口完成,这将导致更多可测试的代码。

另一种解决方案当然是(一如既往)Typemock Isolator