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…
http://solutionizing.net/2009/02/16/faking-spcontext/
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;
}