Faking SPContext–for testing only…

Keith Dahlby has a good post on creating a fake SPContext.  Here’s the link and the code

NOTE: This is not production safe code – use at own risk…


public static SPContext FakeSPContext(SPWeb contextWeb)
  // Ensure HttpContext.Current
  if (HttpContext.Current == null)
    HttpRequest request = new HttpRequest("", web.Url, "");
    HttpContext.Current = new HttpContext(request,
      new HttpResponse(TextWriter.Null));

// SPContext is based on SPControl.GetContextWeb(), which looks here
if(HttpContext.Current.Items["HttpHandlerSPWeb"] == null)
HttpContext.Current.Items["HttpHandlerSPWeb"] = web;

return SPContext.Current;