0

我正在努力分离以下代码中的依赖项:

    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);

    }

本质上,我想在不依赖外部网站请求的情况下进行单元测试。

解决这个问题的最佳方法是什么?

4

1 回答 1

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 将覆盖任何虚拟属性。

于 2008-10-28T21:14:43.497 回答