我正在努力将以下代码中的依赖项分开:
public static SiteConnector ConnectToSite(String Logon, String Password)
{
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(_URI);
ConfigureRequest(Logon, Password, webRequest);
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
Cookie ReposonseCookie;
//this looks for a cookie and spitsout a value based on response
int value = ProcessResponse(webResponse,out ReposonseCookie);
return new SiteConnector(ReposonseCookie, value);
}
基本上我想在不依赖外部网站请求的情况下进行单元测试。
最好的解决方法是什么?
答案 0 :(得分:2)
不确定那个班级是如何从头顶看出来的,但是你总是可以将它们包裹在你自己的可测试类中。
public class WebRequestWrapper
{
internal WebRequestWrapper() {..}
public WebRequestWrapper(WebRequest req)
{
_innerRequest = req;
}
public virtual string Url
{
return _innerReq.Url;
}
//repeat, make all necessary members virtual
}
然后您可以使用RhinoMocks创建此类的PartialMock。 IT将覆盖任何虚拟属性。