Domanda

Faccio fatica a separare le dipendenze nel seguente codice:

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

    }

In sostanza voglio testare l'unità senza fare affidamento sulla richiesta al sito Web esterno.

Quale sarebbe il modo migliore per farlo?

È stato utile?

Soluzione

Non sono sicuro di come quella classe appaia dalla cima della mia testa, ma puoi sempre avvolgerla intorno alla tua classe, testabile.

public class WebRequestWrapper
{
   internal WebRequestWrapper() {..}

   public WebRequestWrapper(WebRequest req)
   {
      _innerRequest = req;
   }


   public virtual string Url
   {
      return _innerReq.Url;
   }

   //repeat, make all necessary members virtual
}

quindi puoi usare RhinoMocks per creare un PartialMock di questa classe. L'IT sovrascriverà qualsiasi proprietà virtuale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top