我有一些代码可以下载一些RSS源。
我一直在使用WebClient
或Argotic.Syndication.RssFeed
个库。
但这些都不可模仿:(
我绝对不希望每次运行单元测试时都能点击真正的RSS提要。
有没有人对我能做什么有任何建议?
我需要创建一个邪恶的包装器吗?如果是这样......对此有何建议?
答案 0 :(得分:21)
有没有人对我能做什么有任何建议?
抽象接口后面的实际HTTP调用。然后使用WebClient编写此接口的实现。现在让您的主类将此接口作为依赖项。您现在可以在单元测试中模拟此接口,并配置您的依赖注入框架在运行时注入正确的实现。
答案 1 :(得分:17)
我会为每个外部依赖创建一个包装器(如果它是实用的)。因此,与文件系统/ webservice /数据库的每次交互都应该只通过一个接口完成,这将导致更多可测试的代码。
另一种解决方案当然是(一如既往)Typemock Isolator。