我需要从我的控制器下载页面并使用Webclient这样做,这不是Mockable?我如何测试这个或者我可以直接在那里留下参考?
答案 0 :(得分:3)
您可以定义存储库接口,并在此存储库的实现中使用WebClient。然后你的控制器将使用存储库,因为它是一个界面,很容易模拟。现在你要说的是,这只是委托单元测试存储库实现的问题,该存储库现在正在使用WebClient并且不可模拟。对此的答案是,这不再是单元测试,而是坦率地测试这样的方法:
public string FetchData(string url)
{
using (var client = new WebClient())
{
return client.DownloadString(url);
}
}
没有多大意义,因为您现在正在测试WebClient类,我希望它的作者已经在Redmond中完成了。