【发布时间】:2012-06-21 04:09:09
【问题描述】:
我有一些代码可以下载一些 RSS 源。
我一直在使用 WebClient 或 Argotic.Syndication.RssFeed 库。
但这些不是可模拟的 :(
我绝对不想每次运行单元测试时都点击真正的 RSS 提要。
有人对我能做什么有任何建议吗?
我需要创建一个邪恶的包装器吗?如果是这样.. 对此有何建议?
【问题讨论】:
标签: c# .net mocking moq webclient
我有一些代码可以下载一些 RSS 源。
我一直在使用 WebClient 或 Argotic.Syndication.RssFeed 库。
但这些不是可模拟的 :(
我绝对不想每次运行单元测试时都点击真正的 RSS 提要。
有人对我能做什么有任何建议吗?
我需要创建一个邪恶的包装器吗?如果是这样.. 对此有何建议?
【问题讨论】:
标签: c# .net mocking moq webclient
有人对我能做什么有任何建议吗?
抽象接口背后的实际 HTTP 调用。然后使用 WebClient 编写此接口的实现。现在让您的主类将此接口作为依赖项。你现在可以在单元测试中模拟这个接口,并配置你的依赖注入框架在运行时注入正确的实现。
【讨论】:
我会为每个外部依赖项创建一个包装器(如果可行的话)。因此,与文件系统/Web 服务/数据库的每次交互都应仅通过接口完成,这将产生更多可测试的代码。
当然,另一个解决方案是(一如既往)Typemock Isolator。
【讨论】: